2009-06-26 4 views
8

मैं कुछ बड़े सी कार्यक्रमों मिल गया है, और मुझे पता है कि जब मैं इस कार्यक्रम है, जो हेडर फाइल वास्तव में शामिल किए गए हैं संकलन कर रहा हूँ चाहते हैं ...जीसीसी में प्रीप्रोसेस्ड कोड को देखे बिना कौन सी शीर्षलेख शामिल हैं, यह जानने के लिए कैसे?

सरल समाधान preprocessed कोड मुद्रित करने के लिए किया जाएगा और देखो लेकिन क्या आपको पता है कि संकलन करने का कोई तरीका है और साथ ही यह दिखाता है कि हेडर फाइलें क्या शामिल हैं?

उत्तर

14

निर्भरताओं को आउटपुट करने के लिए -M option का उपयोग करें। और संकलन उत्पन्न करने के लिए -MD का उपयोग करें। फ़ाइल पर रीडायरेक्ट करने के लिए -एमएफ का उपयोग करें।

इसके अलावा -एमएम निर्भरता सूची में सिस्टम फ़ाइल को अनदेखा करने की अनुमति देता है।

gcc ... -M -MF <output_file>  # generate dependencies 
gcc ... -MD -MF <output_file>  # compile and generate dependencies 
+0

मुद्रित नहीं करता, लेकिन मैनुअल से: चालक को -M पासिंग -E का तात्पर्य है, और को दबा एक अंतर्निहित डब्ल्यू के साथ चेतावनी। तो प्रोग्राम वास्तव में संकलित नहीं किया गया है – LB40

+0

हां, आपको संकलन करने के लिए -एमडी का उपयोग करना होगा * और * एक ही समय में निर्भरताओं को उत्पन्न करना होगा। – philant

+0

ठीक है ... धन्यवाद ...;) – LB40

0

जीसीसी वर्बोसिटी बढ़ाएं और फिर इसे अपने स्वयं के फ़िल्टर प्रोग्राम के माध्यम से चलाएं?

+1

कोई जीसीसी -v इस जानकारी – LB40

5

आप -MD विकल्प का उपयोग कर सकते हैं - विवरण के लिए man gcc देखें।

0

जीसीसी-एम या जीसीसी-एमएम का प्रयोग करें। यदि आप चाहें तो sed के साथ आउटपुट समायोजित करें। यदि आप जीएनयू मेक (और आपको चाहिए) का उपयोग करते हैं तो आप इसे एक सिंगल टडी कमांड में लपेट सकते हैं।

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