2010-10-12 10 views
16

क्या कोई विकल्प है कि जीसीसी प्रीप्रोसेसर सी स्रोत कोड उत्पन्न कर सकता है और अप्रासंगिक स्रोत कोड फ़िल्टर कर सकता है?#define जैसे मैक्रोज़ के बाद कोड प्राप्त करने के लिए मैं जीसीसी प्रीप्रोसेसर कैसे चला सकता हूं?

उदाहरण के लिए, .c फ़ाइल में #define स्विच कई अलग-अलग प्लेटफॉर्म के लिए परिभाषित करने के लिए स्विच है। मुझे केवल एक मंच में दिलचस्पी है, और मैं सी प्रीप्रोसेसर को असंबंधित कोड को फ़िल्टर करना चाहता हूं।

जीसीसी इसका समर्थन करता है?

+1

ध्यान दें कि प्रीप्रोसेसर चलाने के बाद, आपके पास फ़ाइल के शीर्ष पर सभी '# शामिल' भी होंगे (इसलिए बहुत सारे स्क्रॉलिंग के लिए तैयार करें)। – delnan

+0

अतिरिक्त प्रश्न और चर्चा के साथ http://stackoverflow.com/questions/3917316/gcc-preprocessor पर इस प्रश्न का एक डुप्लिकेट है। –

+0

विजुअल स्टूडियो: http://stackoverflow.com/questions/277258/c-c-source-file-after-preprocessing –

उत्तर

11

-E विकल्प सभी पूर्व प्रसंस्करण प्रदर्शन करेंगे, वहीं इससे कुछ बहुत ही 'कच्चे' उत्पादन नहीं हो सकता है कि क्या आप (आप क्या चाहते हैं पर निर्भर करता है) चाहते हैं पैदा करता है: -E विकल्प का उपयोग करें।

यदि आपको एक मैक्रो विस्तार को डीबग करने की आवश्यकता है जो आप उम्मीद नहीं कर रहे हैं, तो E जाने का एक अच्छा तरीका है। आप बस को 'निष्क्रिय कोड' को फ़िल्टर, लेकिन में शेष कोड छोड़ने के लिए चाहते हैं और अधिक या कम मूल रूप, तो आपको निम्न स्टैक ओवरफ़्लो प्रश्न के उत्तर को देखने के लिए चाहते हो सकता है:

3

ऐसा लगता है कि आप unifdef, नहीं जीसीसी पूर्वप्रक्रमक चाहते हैं।

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