2011-09-15 17 views
24

मैंने EclipseCDTMinGW के साथ स्थापित किया। सभी पर्यावरण चर सेट हैं, शामिल हैं, आदि। एक हैलो दुनिया चलाने का प्रयास किया और सब कुछ ठीक लगता है।ग्रहण सीडीटी "प्रतीक न्यूल हल नहीं किया जा सका"

मैं एक C परियोजना है कि मैं अपने कंप्यूटर में पहले था लोड हो रहा है की कोशिश की, यह सब कुछ ठीक लोड करने के लिए लगता है, फिर भी मैं NULL प्रतीक के साथ निम्न त्रुटि मिलती है:

Symbol 'NULL' could not be resolved 

किसी भी अंतर्दृष्टि? धन्यवाद!

उत्तर

31

NULL आमतौर पर stddef.h में परिभाषित किया जाता है। यह फ़ाइल आमतौर पर stdlib.h और stdio.h के साथ भी शामिल है।

और, आप हमेशा ऐसा कर सकता है:

#ifndef NULL 
#define NULL ((void *) 0) 
#endif 
+0

वास्तव में मुझे नहीं लगता कि मानक शीर्षलेख एक-दूसरे को शामिल करते हैं; 'न्यूल' को परिभाषित करने वाले कई शीर्षलेखों में से प्रत्येक स्वतंत्र रूप से ऐसा करता है। और आप * इसे स्वयं परिभाषित कर सकते हैं, लेकिन ऐसा करने का कोई अच्छा कारण नहीं है; बस हेडर शामिल करें। –

+1

@ किथ - शायद कुछ सिस्टम पर, लेकिन लिनक्स पर, stdlib.h में stddef.h शामिल है। और यहां Google Code Search - [http://google.com/codesearch#XAzRy8oK4zA/libc/include/stdlib.h&q=stdlib.h&type=cs] –

+0

ठीक है, लेकिन प्रभाव यह है कि इसमें शामिल नहीं है यह। यह: '# शामिल int मुख्य (शून्य) { ऑफ़सेट (संरचना {int i;}, i); वापसी 0; } ' संकलन करने में विफल रहता है। –

0

मैं क्योंकि मुझे पता चला कि CDT कभी कभी मानक पुस्तकालय के हेडर को हल करने में विफल रहता है इस बारे में यहाँ जवाब के लिए देख रहा था। मुझे अभी भी पता नहीं है कि क्यों और कैसे बग को पुन: उत्पन्न करना है। बस सीडीटी को पुनरारंभ करें और सभी हल हो गए हैं।

5

मुझे एक ही समस्या थी: मेरा मेकफ़ाइल ठीक चल रहा था लेकिन मुझे ग्रहण सीडीटी दृश्य से आपकी तरह की त्रुटियां मिल रही थीं।

मैंने वर्तमान प्रोजेक्ट को बंद कर दिया, मैंने अपनी परियोजना के सही स्थान स्रोत स्थान को निर्दिष्ट करते हुए एक नया "मेकफ़ाइल प्रोजेक्ट मौजूदा कोड" खोला। इसके बाद, मैंने जांच की कि: राइट क्लिक करें प्रोजेक्ट/सी ++ सामान्य/पथ और प्रतीकों/जीएनयू सी ++/निर्देशिका शामिल नहीं है और मेरे प्रोजेक्ट के सही पथ शामिल हैं।

फिर, मैंने इंडेक्स का पुनर्निर्माण किया (राइट क्लिक/इंडेक्स/पुनर्निर्माण)।

इसके अलावा, मैं एक्लिप्स सीडीटी 7 का उपयोग करता हूं और ग्रहण सीडीटी 8 नहीं करता क्योंकि सीडीटी 8 कभी-कभी मुझे जीयूआई से संकलन त्रुटियां देता है जो मैं हल नहीं कर सकता था, हालांकि मेकफ़ाइल ठीक था।

+0

+1 कुछ समय के लिए इस समाधान की तलाश में थे। – chux

14

बॉब उल्लेख किया है, मैं सिर्फ सूचकांक

  1. सही अपनी परियोजना
  2. चुनें "सूचकांक"
  3. चुनें "पुनर्निर्माण"
0

मैं हो रही थी फिर से बनाया से बग को ठीक एक ही त्रुटि और मैंने इसे अपने प्रोजेक्ट पर राइट क्लिक करके तय किया है, इंडेक्स टैब पर होवर करें और पुनर्निर्माण पर क्लिक करें। उसके बाद मेरी त्रुटियां चली गईं।

2
  • कारण है:

शून्य stddef.h में परिभाषित किया गया है, लेकिन stddef.hxxx/include/linux में है नहीं xxx/include

-> भले ही आप को शामिल किया है MinGW के xxx/include, अभी भी नहीं मिला सकते हैं NULL

  • समाधान है:

अपनी परियोजना के लिए अपने Mingw के include/linux पथ जोड़ने

  • संदर्भित

(1) मेरी X स्केल crosscompiler के include/linux पथ का उदाहरण है: /opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/linux

added GNU C++ include linux path

(2) मेरी पोस्ट: Ubuntu Eclipse: Symbol ‘NULL’ could not be resolved

1

मैंने अभी इस तरह की एक त्रुटि तय की है और सोचा है कि किसी और को यह समाधान नहीं मिला है क्योंकि मैं इसे पोस्ट करूंगा। मैंने पाया कि stdlib ने मेरे एवीआर जीसीसी कंपाइलर में NULL को ___need_NULL के रूप में घोषित किया था। इसने एक्लिप्स आईडीई में एक त्रुटि उत्पन्न की। हालांकि त्रुटि कोडेन विश्लेषण के कारण विसंगति नहीं मिली और इतनी पंख लग गई कि प्रतीक नहीं मिला। आप "सामान्य -> ​​स्टार्टअप/शटडाउन" के तहत प्राथमिकताओं में कोडेन को बंद कर सकते हैं या सी/सी ++ कोड विश्लेषण में अपना व्यवहार बदल सकते हैं।

यह कभी कभी यादृच्छिक प्रकृति दूसरों

1

सामना कर रहे हैं मुझे लगता है कि आप नहीं जोड़ा है हेडर फाइल कि शून्य को परिभाषित करता है समझा जा सकता है। Stdlib.h जोड़ें (# शामिल कथन)। यह नल मैक्रोज़ को परिभाषित करता है।

0

ग्रहण पुस्तकालय पथ में बस C:\MinWG\lib जोड़ें।

0

मुझे भी इसी तरह की समस्या का सामना करना पड़ता है जो "प्रतीक एल्फ जादू को हल नहीं किया जा सकता", और एल्फ हेडर पहले ही शामिल हो चुका है। मुझे लगता है कि समस्या लाइब्रेरी कैश के कारण हो सकती है, सॉफ़्टवेयर को पुनरारंभ करने के लिए समस्या हल हो सकती है। दूसरों की मदद के लिए धन्यवाद।

+0

क्या आपको अपनी ही समस्या का सामना करना पड़ रहा है? – Alex

+0

हां, मेरी समस्या है "प्रतीक 'एल्फ जादू' हल नहीं किया जा सका" – user6528152

+0

SO में आपका स्वागत है। उत्तर पोस्ट करने के बारे में कुछ सुझाव। उत्तर पोस्ट करें यदि: 1।आपको एक समान समस्या का सामना करना पड़ा और इसे हल करने में सक्षम था। 2. आपको लगता है कि आपका उत्तर योगदान दे सकता है (उदा। आपका समाधान अलग है, या समस्या थोड़ा अलग है लेकिन मूल से संबंधित है)। अपने उत्तर में अधिक जानकारी शामिल करें। – Alex

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