2010-03-13 13 views
11

मैं मेकफ़ाइल के बारे में जानना शुरू कर रहा हूं।मेकफ़ाइल में -DHAVE_CONFIG_H का अर्थ

g++ -DHAVE_CONFIG_H -I ... 

-DHAVE_CONFIG_H वास्तव में क्या है: उत्पादन को देखते हुए मैं की घटनाओं का एक बहुत देखते हैं? इस संकलन विकल्प का कार्य क्या है?

उत्तर

20

सभी -DHAVE_CONFIG_H प्री-प्रोसेसर टोकन HAVE_CONFIG_H को परिभाषित करना है जैसे कि आपके प्रत्येक स्रोत फ़ाइलों की शुरुआत में #define HAVE_CONFIG_H ठीक है।

इसके लिए क्या उपयोग किया जाता है, यह पूरी तरह से आपकी शेष स्रोत फ़ाइल (और इसमें जो कुछ भी शामिल है) पर निर्भर करता है। यही वह जगह है जहां आपको इसके प्रभाव को काम करने की तलाश करनी चाहिए।

यह की तरह इसका मतलब है कि एक हेडर फाइल config.h उपलब्ध है और शामिल किया जाना चाहिए, जिस स्थिति में हो सकता है आपने स्रोत फ़ाइलों में कहीं पर निम्न क्रम में मिल जाएगा दिखता है:

#ifdef HAVE_CONFIG_H 
    #include "config.h" 
#endif 

जो होगा जब आप कहते हैं कि हेडर फ़ाइल शामिल है तो यह उपलब्ध है। हालांकि यह मेरे हिस्से पर supposition है और किसी भी तरह से सटीक प्रभाव नहीं, बस मैं इस तरह के एक प्रीप्रोसेसर प्रतीक का उपयोग करेंगे।

+0

लेकिन जिस तरह से, "डीईएफएस" का मतलब मेकफ़ाइल में है? धन्यवाद – flow

+0

@Werner, संदर्भ पर निर्भर करता है। यदि यह "डीईएफएस = -सी-ओ 2" है, तो यह सिर्फ एक प्रतिस्थापन को परिभाषित कर रहा है जिसका उपयोग बाद में किया जा सकता है, उदाहरण के लिए, "जीसीसी $ (डीईएफएस) ब्ला ब्लाह" जीसीसी-सी-ओ 2 ब्ला ब्ला "बन जाता है। – paxdiablo