मैं कोड विकास और Makefile
प्रोजेक्ट के डीबग के लिए एआरएम डीएस -5 v5.20.0 पैकेज से एक्लिप्स सीडीटी v4.3.2 का उपयोग कर रहा हूं।एक्लिप्स सीडीटी इंडेक्स एक हेडर फ़ाइल क्यों है जो पथ में नहीं है?
मेकफ़ाइल वास्तव में मकेफाइल का पदानुक्रम है जो कमांड लाइन विकल्पों के आधार पर एकाधिक कॉन्फ़िगरेशन में एकाधिक लक्ष्य बनाता है।
प्रभावी स्थिर विश्लेषण की अनुमति देने के लिए, मैं प्रोजेक्ट की सेटिंग Paths and Symbols
का उपयोग करता हूं ताकि इंडेक्सर को विभिन्न फाइलों को ढूंढने में मदद मिल सके और सही सशर्त रूप से संकलित कोड सेगमेंट को हाइलाइट किया जा सके।
हमारे प्रोजेक्ट में एक हेडर फ़ाइल है जो कोड पेड़ के कई मॉड्यूल में शामिल है। हालांकि, हेडर फाइल के दो वेरिएंट दो निर्माण विन्यास के साथ दो आसन्न निर्देशिका में मौजूद, सशर्त उपयोग के लिए कर रहे हैं:
My_Project
|
+-- Include_1
| |
| +-- header.h
|
+-- Include_2
| |
| +-- header.h
|
+-- Source
| |
| +-- module_1.c
|
+-- makefile
दो वेरिएंट ज्यादातर समान हैं, लेकिन कुछ मतभेद होते हैं। इन शीर्षकों में कुछ मैक्रो परिभाषाएं और enum
typedef
मिटा दी गई हैं। विशेष रूप से, निम्न नमूना भागों दोनों वेरिएंट में समान हैं:
// header.h
#define SYMBOL 0x1
typedef enum {
constant = 0x2
} enum_t
एक ठेठ कोड मॉड्यूल इन हेडर में से एक, makefile में कॉन्फ़िगरेशन के आधार पर शामिल है, और SYMBOL
और constant
के संदर्भ हैं।
paths and Symbols
टैब में, मैंने पथ सूची में केवल My_Project/Include_1
जोड़ा, इसलिए सूचकांक को भ्रमित नहीं होना चाहिए। मैंने Window
- Preferences
->C/C++
->Indexer
मेनू में वास्तव में Allow heuristic resolution of includes
विकल्प अक्षम कर दिया है - वास्तव में, मैंने सभी इंडेक्सर विकल्पों को अक्षम कर दिया है)।
, जब मैं संपादक में module.c
फ़ाइल को खोलने, constant
के लिए संदर्भ लहरदार लाल रेखांकन के साथ चिह्नित कर रहे हैं, और एक Symbol 'constant' could not be resolved
त्रुटि दर्शाई गई हैं। उसी समय, SYMBOL
के सन्दर्भ में कोई त्रुटि संकेत नहीं है।
जब मैं हेडर फ़ाइलों में से किसी एक को header_x.h
पर पुनर्नामित करता हूं तो त्रुटि संकेत गायब हो जाता है।
1. मुझे इन इंडेक्सर त्रुटि संकेत क्यों प्राप्त होते हैं?
2. मैं उन्हें कैसे समाप्त कर सकता हूं?
3. केवल enums और # परिभाषित क्यों नहीं?
मुझे इस प्रश्न का उत्तर नहीं पता है, लेकिन यदि आपको SO पर कोई अच्छा उत्तर नहीं मिलता है, तो आप सीडीटी समुदाय मंच पर पोस्ट पार करने का प्रयास कर सकते हैं: https://www.eclipse.org/ फ़ोरम/index.php/f/80/वैकल्पिक रूप से यदि आप DS5 का उपयोग कर रहे हैं तो एक वाणिज्यिक उत्पाद है, मैं सीधे एआरएम से सहायता का अनुरोध करता हूं क्योंकि लाइसेंस शुल्क में सहायता शामिल है। –
@ जोनाह ग्राहम - धन्यवाद। ग्रहण मंचों के साथ मेरा अनुभव इतना अच्छा नहीं है। अक्सर, गैर-मुख्यधारा के प्रश्न पूछने के लिए SO (और सामान्य रूप से एसई) सबसे अच्छी जगह है। मैंने एआरएम को अतीत में दो बार मदद की थी (और वास्तव में, उनकी वर्तमान रिलीज में कम से कम दो बग फिक्स शामिल हैं!)। मैंने सोचा कि यह समस्या एआरएम विशिष्ट नहीं है कि अन्य सीडीटी उपयोगकर्ताओं का सामना करना पड़ सकता है। वैसे भी, यह शायद मेरा अगला पड़ाव होगा। – ysap
मैं सभी बिंदुओं पर आपसे सहमत हूं, अगर आपको यहां बहुत अधिक प्रतिक्रिया नहीं मिलती है तो बस कुछ दूसरी स्टॉप की पेशकश करें। मुझे आशा है कि एआरएम भी सीडीटी कीड़े को ठीक करने के इच्छुक हैं! पीएस, अगर आप गिटहब पर एमसीवीई चिपकते हैं, तो मुझे एक नज़र रखना अच्छा लगेगा (मैं थोड़ी देर के लिए सीडीटी देव कर रहा हूं, बस अपने मुद्दे पर तुरंत जवाब न दें) –