2012-05-11 6 views
15

इसलिए मैं ग्रहण में कुछ Arduino कोड बना रहा हूं, जैसा कि Your Second Arduino Project में वर्णित है, लेकिन हर बार जब मैं Serial जैसे आर्डिनो लाइब्रेरी का उपयोग करता हूं, ग्रहण मेरे फ़ंक्शन नामों को रेखांकित करता है, दावा करता है कि उन्हें हल नहीं किया जा सकता है। हालांकि, कोड वास्तव में संकलित करता है, इसलिए मुझे नुकसान होता है कि क्यों ग्रहण सोचता है कि फ़ंक्शंस गुम हैं। अगर किसी को इस समस्या को हल करने के बारे में कोई विचार है तो इसकी सराहना की जाएगी। धन्यवाद पहले से ही।ग्रहण सी/सी ++ त्रुटियों को दिखाता है लेकिन संकलित करता है?

संपादित करें: मुझे अधिक विशिष्ट होना चाहिए था, ग्रहण Arduino पुस्तकालयों के अंदर METHODS को रेखांकित करता है। इसलिए यदि मैं Serial.println("hello"); का उपयोग करता हूं, तो यह println() को रेखांकित करता है और दावा करता है कि इसे हल नहीं किया जा सकता है। फिर यह ठीक है और Arduino बोर्ड पर अपलोड करते समय विधि काम करता है।

EDIT2: मुझे मेरी त्रुटि मिली, पता चला कि मैं सी फ़ाइल में कुछ सी ++ फ़ंक्शंस का उपयोग करने की कोशिश कर रहा था, और ग्रहण इसे पसंद नहीं आया; मैं .cpp का नाम बदल गया और सभी लाल गायब हो गए;) आपकी मदद के लिए धन्यवाद!

+0

क्या यह संकलन के बाद भी उन्हें रेखांकित करता है? – Kiril

+0

हम्म, अच्छा यह दुर्भाग्यपूर्ण है! मुझे यकीन नहीं है कि इसका कारण क्या हो सकता है। – Kiril

+0

क्या आपके पास ऑटोबॉल्ड है? –

उत्तर

5

शुरुआत के लिए, रेखांकन किस रंग का है? इससे कोई फर्क पड़ता है, पीले रंग का मतलब है कि यह एक चेतावनी है, और लाल का मतलब है कि यह एक त्रुटि है (महत्वपूर्ण, ज्यादातर परिस्थितियों में नहीं बनाया जाएगा)।

दूसरा, आपको वास्तविक समस्याएं देखने के लिए "समस्याएं" टैब देखने की आवश्यकता है। अगर वहां कुछ भी नहीं है, तो यह वास्तव में सही ढंग से संकलित किया गया था।

अब, मूल प्रश्न पर वापस जाएं। आपके द्वारा बनाई जा रही परियोजना के प्रकार के आधार पर, इस प्रकार का व्यवहार असामान्य नहीं है। ग्रहण कुछ परियोजनाओं को अनुक्रमणित करने का एक खराब काम करता प्रतीत होता है। जब आप कमांड लाइन से "सब कुछ" चलाते हैं (जो प्रभावी रूप से ग्रहण के दौरान ग्रहण करता है) यह संभवतः आपके सभी कोड को हल करने और इसे ठीक से बनाने की संभावना है।

हालांकि, ग्रहण आपके सभी स्रोत कोड को अनुक्रमणित करने और चर/फ़ंक्शन परिभाषाओं और घोषणाओं को हल करने के लिए अलग, अलग उपकरण का उपयोग करता है। यह सचमुच बाएं हाथ का मामला नहीं है यह जानकर कि सही हाथ क्या कर रहा है।

+3

सभी रेखांकित लाल हैं, और मेरी समस्या टैब कहती है कि वे सभी "अर्थपूर्ण त्रुटियां" हैं। मनोरंजक के रूप में यह पूरी तरह से लाल रंग की फ़ाइल को सफलतापूर्वक संकलित करना है, क्या इन सभी लाल रेखाओं को कम से कम छिपाने का कोई तरीका है? : पी – SuperTron

28

ग्रहण कॉन्फ़िगरेशन के आधार पर आपके बिल्ड सेटअप से अनुक्रमणिका में पथ खींच सकता है या नहीं। सबसे अधिक संभावना है, यह नहीं है ... यह सही ढंग से निर्माण कर रहा है क्योंकि आपका निर्माण सेटअप ठीक है, और आप शायद हाथ से बना सकते हैं।

सीडीटी इंडेक्सर (जो यह तय करने के लिए इंजन है कि उन सभी सुंदर रेखांकित, साथ ही साथ कोड समापन, एफ 3 घोषणा जंपिंग इत्यादि) आपके मेकफ़ाइल को पार्स करने के लिए कई मामलों में पर्याप्त स्मार्ट नहीं है और पता है कि शीर्षलेख और स्रोत कहां देखना है। आपको ग्रहण को मैन्युअल रूप से बताना होगा।

पर जाएं परियोजना गुण -> सी/सी ++ सामान्य -> ​​पथ और प्रतीक

आपके पर्यावरण के आधार पर आपको जो काम करने की आवश्यकता है, वह काफी भिन्न हो सकती है। इस बाहरी पुस्तकालय केवल आप सिर दर्द दे रही है, तो आप शायद सिर्फ इतना है कि पुस्तकालय और अनुक्रमणः के लिए पथ जोड़ने की जरूरत है बात यह है:

परियोजना पर राइट क्लिक करें और चुनें सूचकांक -> पुनर्निर्माण

+0

@ इस समस्या को सुलझाने में मुझे 2 दिन लगे। धन्यवाद। हालांकि पथ पहले ही निर्दिष्ट है, मैंने इसे मैन्युअल रूप से जोड़ा और इंडेक्स का पुनर्निर्माण किया। यह काम किया। इस तरह के सामान बहुत निराशाजनक हैं, उम्मीद है अगले avr ग्रहण प्लगइन में हल हो जाता है। – tez

+1

मैं इसे पागल हल कर सकता था लेकिन आपने इसे 2 क्लिक समाधान –

+3

इंडेक्स बनाया -> पुनर्निर्माण मुझे मदद करता है;) – stviper

1

मैं > C/C++ जनरल - -> पथ और प्रतीक - में

प्रोजेक्ट गुण फ़ोल्डरों में शामिल था>

शामिल जब मैं उन से हटाया, लाल रेखांकन निर्माण और आईडीई यानी, दूर चला गया जहां सिंक में।

0

मुझे एक ही समस्या थी। इंडेक्स -> पुनर्निर्माण में मदद नहीं मिली। जब मैंने में मुख्य.cpp जोड़ा और इंडेक्स -> पुनर्निर्माण को रेखांकित किया गया। फिर मैंने #include <avr/iom1280.h> लाइन को हटा दिया और अभी भी इंडरलाइन के बिना प्रोजेक्ट हटा दिया।

अपने नियंत्रक के नाम के साथ iom1280.h बदलें। को देखो उपलब्ध नामों

+1

कोई आदर्श समाधान नहीं है। यह आपके लिए संकलन के दौरान करता है और इसे एमसीयू पर रखता है जिसे आप कंपाइलर को निर्दिष्ट करते हैं। – Larcho

1

जब प्रतीकों को हल करने, CDT इंडेक्सर सभी हेडर फाइल पर विचार करने के बिना लिहाज जिनमें से लोगों को वास्तव में संकलन इकाई में शामिल किए गए हैं लगता है के लिए फ़ोल्डर "AVR \ \ AVR \ में शामिल हैं"। एक्लिप्स बगजिला के साथ दायर की गई एक संबंधित बग रिपोर्ट है: https://bugs.eclipse.org/bugs/show_bug.cgi?id=439553

0

ग्रहण जावा के साथ सी ++ के साथ काम नहीं करता है, लेकिन मेनू बार में "पुनर्निर्माण" दबाए जाने पर इसे आपको मुद्दों के बारे में चेतावनी देना चाहिए।

कोशिश करें, और देखें कि यह आपकी समस्या का समाधान करता है या नहीं।

1

नीचे दिए गए समाधान मेरे लिए काम करते हैं: राइट क्लिक का उपयोग करके अपनी परियोजना पर क्लिक करें। फिर: गुण -> सी/सी ++ सामान्य -> ​​पथ और प्रतीक -> प्रतीक -> जीएनयू सी ++। लगभग निश्चित रूप से यदि आपको यह समस्या है तो कोई प्रतीक नहीं हैं। प्रतीक "__cplusplus" के साथ मूल्य "201402L" इसके बाद जोड़ें: सही परियोजना पर क्लिक करें -> पुनर्निर्माण आप से किया जाता है -> सूचकांक।