2012-06-12 15 views
10

जीसीसी पर संकलन पर मेरा सी कोड त्रुटि Cannot find entry symbol _start defaulting to 00000 दे रहा है। क्या कोई मुझे बता सकता है कि इसे क्यों और कैसे सही किया जाए?प्रवेश प्रतीक नहीं मिला _start

कमांड लाइन arm-none-eabi-gcc -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp file path है और लक्ष्य प्लेटफ़ॉर्म ए -8 सितारा कॉर्टेक्स प्रोसेसर है।

+1

आपको और जानकारी पोस्ट करने की आवश्यकता है। विशेष रूप से आपकी कमांड लाइन और लक्ष्य मंच। –

+0

कमांड लाइन है arm-none-eabi-gcc -O3 -march = armv7-a -mtune = cortex-a8-mfpu = neon -ftree-vectorize -mfloat-abi = softfp फ़ाइल पथ और लक्ष्य प्लेटफ़ॉर्म ए -8 है सीटारा कॉर्टेक्स प्रोसेसर –

+2

'_start' मानक लाइब्रेरी का हिस्सा है। यह वह कार्य है जो 'मुख्य' कहता है। इसे 'crt0.o' में परिभाषित किया जाना चाहिए जिसे स्वचालित रूप से आपके प्रोग्राम से जोड़ा जाना चाहिए। यह संभव है कि आपका जीसीसी अलग-अलग काम करता है और कुछ अतिरिक्त कार्यों की आवश्यकता है। शायद दस्तावेज़ीकरण में कुछ कामकाजी उदाहरण हैं? –

उत्तर

3

-नोन-पार्ट का मतलब है कि आपका टूलचैन किसी विशेष ऑपरेटिंग सिस्टम के लिए नहीं बनता है, इसलिए आपको _start प्रविष्टि बिंदु को परिभाषित करना होगा। किसी विशेष ऑपरेटिंग सिस्टम के लिए निर्मित गैर-नंगे-धातु टूलचेन के लिए, मानक लाइब्रेरी द्वारा _start प्रदान किया जाता है, जब सबकुछ स्थापित होता है तो क्रम में मुख्य कॉल किया जाएगा।

5

संकलक ने उपरोक्त त्रुटि को फेंकने का एकमात्र कारण यह है कि आपके कोड को चलाने के लिए ओएस द्वारा उत्पन्न प्रारंभ कोड (_start फ़ंक्शन) डिफ़ॉल्ट या पंजीकृत फ़ंक्शन मुख्य नहीं ढूंढ सकता है। तो या तो आप मुख्य फ़ंक्शन के बजाय _start फ़ंक्शन का उपयोग कर सकते हैं लेकिन संकलन कमांड gcc -nostartfiles filename.c होना चाहिए, लेकिन _start का उपयोग करके इसके बजाय मुख्य उपयोग करने के लिए बहुत सारे अपवाद हैं।

संबंधित मुद्दे