makefile का टैब के साथ बहुत ही मूर्खतापूर्ण संबंध है, हर नियम की सभी क्रियाओं को टैब द्वारा पहचाना जाता है। और नहीं, 4 स्थान एक टैब नहीं बनाते हैं, केवल एक टैब एक टैब बनाता है।
जाँच करने के लिए मैं कमांड का उपयोग करता हूं cat -e -t -v makefile_name
यह दिखाता है कि दोनों के साथ टैब ^I
और लाइन एंडिंग की उपस्थिति $
महत्वपूर्ण है ताकि यह सुनिश्चित हो सके कि निर्भरता ठीक से समाप्त हो और टैब नियमों के लिए कार्रवाई को चिह्नित करें ताकि वे आसानी से पहचान कर सकें।
उदाहरण:
Kaizen ~/so_test $ cat -e -t -v mk.t
all:ll$ ## here the $ is end of line ...
$
ll:ll.c $
^Igcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<$
## the ^I above means a tab was there before the action part, so this line is ok .
$
clean :$
\rm -fr ll$
## see here there is no ^I which means , tab is not present ....
## in this case you need to open the file again and edit/ensure a tab
## starts the action part