शायद आपके main
फ़ंक्शन को उदाहरण के कारण टिप्पणी की गई है पूर्व प्रसंस्करण। यह जानने के लिए कि प्रीप्रोसेसिंग क्या कर रहा है, gcc -C -E es3.c > es3.i
आज़माएं, फिर जेनरेट की गई फ़ाइल es3.i में एक संपादक के साथ देखें (और इसके अंदर main
खोजें)।
सबसे पहले, आप हमेशा (जब से तुम एक नौसिखिया रहे हैं)
gcc -Wall -g -c es3.c
gcc -Wall -g es3.o -o es3
-Wall
झंडा अत्यंत महत्वपूर्ण है के साथ संकलन चाहिए, और आप हमेशा यह प्रयोग करना चाहिए। यह आपको (लगभग) सभी चेतावनियां देने के लिए कंपाइलर को बताता है। और आपको हमेशा चेतावनियों को सुनना चाहिए, यानी आपके स्रोत कोड फ़ाइल es3.C
को सही करें जब तक आपको कोई और चेतावनी न मिल जाए।
-g
ध्वज भी महत्वपूर्ण है, क्योंकि यह ऑब्जेक्ट फ़ाइल और निष्पादन योग्य में डिबगिंग जानकारी डालने के लिए gcc
पूछता है। फिर आप अपने प्रोग्राम को डीबग करने के लिए एक डीबगर (जैसे gdb
) का उपयोग करने में सक्षम हैं।
किसी ऑब्जेक्ट फ़ाइल या निष्पादन योग्य में प्रतीकों की सूची प्राप्त करने के लिए, आप nm
का उपयोग कर सकते हैं।
बेशक, मुझे लगता है कि आप एक जीएनयू/लिनक्स सिस्टम का उपयोग कर रहे हैं (और यदि आप इसे पहले से उपयोग नहीं करते हैं तो मैं आपको जीएनयू/लिनक्स का उपयोग करने के लिए आमंत्रित करता हूं)।
स्रोत
2011-11-01 13:58:06
इस त्रुटि के कारण कोड पोस्ट करने के लिए एक अच्छा विचार हो सकता है। – Lundin
@ ब्रांड्सस्क: जब मैं उस लिंक का पालन करता हूं, तो मुझे 45-सेकंड उलटी गिनती मिलती है। या तो अपने प्रश्न के हिस्से के रूप में कोड पोस्ट करें, या इसे एक छोटे से उदाहरण में संकीर्ण करें जो समस्या को दर्शाता है और उसे पोस्ट करता है। –
ठीक है, मैंने अभी आपकी स्रोत फ़ाइल डाउनलोड की है। (1) इसे 'es3_f3.c' कहा जाता है, नहीं' es3.c'। (2) इसमें कई त्रुटियां हैं, उदाहरण के लिए लाइन 18 पर एक लापता अर्धविराम। यह संभवतः संकलित नहीं हो सका, जिसका अर्थ है कि आप जिस लिंकर त्रुटि की रिपोर्ट करते हैं उसे देखने के लिए आप पर्याप्त नहीं हो पाएंगे। हमें अपना असली कोड दिखाएं। (डाउनलोड की गई स्रोत फ़ाइल 73 लाइनें है, जो सीधे यहां पोस्ट करने के लिए काफी कम है।) –