2013-01-01 38 views
68

संभव डुप्लिकेट:
Make error: missing separatorMakefile - लापता विभाजक

makefile में इस कोड है:

PROG = semsearch 
all: $(PROG) 
%: %.c 
gcc -o [email protected] $< -lpthread 

clean: 
rm $(PROG) 

और त्रुटि

missing separator. stop. 

क्या कोई मेरी मदद कर सकता है?

+3

मेकफ़ाइल में इंडेंटेशन वैकल्पिक नहीं है। क्या आपने ठीक वही किया है जैसा आपने पोस्ट किया है या व्हाइटस्पेस मंग हो गया है? – Mat

+0

जैसा मैंने लिखा था, मैंने इसे प्राप्त किया। – user1827257

+5

यह प्रश्न फिर से खोलना चाहिए। यहां का जवाब यह भी दिखाता है कि टैब के बिना मेकफ़ाइल कैसे लिखना है, पूरी तरह से समस्या को बाधित करना। – Jens

उत्तर

193

आपको हार्ड टैब के साथ gcc और rm से शुरू होने वाली लाइनों से पहले की आवश्यकता है। नियम बनाने में आदेशों को एक टैब से शुरू करने की आवश्यकता होती है (जब तक वे एक ही पंक्ति पर अर्धविराम का पालन नहीं करते)। परिणाम इस तरह दिखना चाहिए:

PROG = semsearch 
all: $(PROG) 
%: %.c 
     gcc -o [email protected] $< -lpthread 

clean: 
     rm $(PROG) 

ध्यान दें कि कुछ संपादकों एक कठिन टैब के बजाय रिक्त स्थान की एक दृश्य डालने के लिए विन्यस्त किया जा सकता है। यदि इन पंक्तियों की शुरुआत में रिक्त स्थान हैं तो आपको "लापता विभाजक" त्रुटि भी दिखाई देगी। यदि आपको हार्ड टैब डालने में समस्याएं हैं, तो अर्धविराम विधि का उपयोग करें:

PROG = semsearch 
all: $(PROG) 
%: %.c ; gcc -o [email protected] $< -lpthread 

clean: ; rm $(PROG) 
+0

धन्यवाद, अब यह काम करता है :) – user1827257

+2

एक अपवॉट (ऊपर तीर पर क्लिक करें) की सराहना की जाएगी :-) – Jens

+9

अर्धविराम मार्ग – cluv