2010-10-27 12 views
6

मेरे पास एक बहुत ही सरल सी प्रोग्राम है:मेकफ़ाइल: त्रुटि 1

int main() 
{ 
    return(1); 
} 

और एक साधारण मेकफ़ाइल:

all: 
    gcc -ansi -pedantic -o tmp tmp.c 
    ./tmp 

हालांकि, जब मैं make टाइप करता हूं तो मुझे निम्न त्रुटि संदेश मिलता है:

$ make 
gcc -ansi -pedantic -o tmp tmp.c 
./tmp 
make: *** [all] Error 1 

क्या स्पष्ट है क्या मुझे याद आ रही है?

उत्तर

20

अगर किसी भी आदेश को निष्पादित करता है तो त्रुटि के साथ बाहर निकलें।

चूंकि आपका प्रोग्राम 1 के कोड से बाहर निकल रहा है, इसलिए यह एक त्रुटि के रूप में देखता है, और उसके बाद एक ही त्रुटि देता है।

आप एक रखकर त्रुटियों को अनदेखा करने के लिए कर बता सकते हैं - इस तरह पंक्ति के आरंभ में:

-./tmp 

आप makefiles here में से निपटने त्रुटि के बारे में अधिक देख सकते हैं।

+0

मुझे पता था कि यह स्पष्ट होने वाला था। अनदेखा भाग के लिए बहुत तेज़ उत्तर – csgillespie

+2

+1 के लिए धन्यवाद (सभी को)। – codaddict

+0

हाँ मैं कुछ महीने पहले इस सटीक त्रुटि में भाग गया था। हालांकि त्रुटियों को अनदेखा करने के लिए मुझे फिर से वाक्यविन्यास देखना पड़ा, ऐसा कुछ नहीं जिसे मैं याद रखने के लिए पर्याप्त उपयोग करता हूं। –

4

आप अपने आवेदन से 1 का एक त्रुटि कोड लौट रहे हैं। यह एक त्रुटि के रूप में रिपोर्ट करने के लिए मेक का काम है!

4

इसका कारण यह है अपने कार्यक्रम लौटने 1.

बनाता करता संकलन जीसीसी का उपयोग, जो ठीक (रिटर्न 0) तो यह निष्पादन के साथ आगे बढ़ता है, लेकिन अपने कार्यक्रम के एक गैर शून्य मान लौटने के लिए, तो कर चला जाता है इसे एक त्रुटि के रूप में रिपोर्ट करता है।

सफल समापन पर एक कार्यक्रम 0 वापस लौटना चाहिए और अन्यथा गैर-शून्य मान वापस करना चाहिए।