2010-07-09 13 views
8

क्या कंपाइलर का नाम प्रिंट करने का कोई तरीका है और संस्करण जो प्रोग्राम को संकलित करने के लिए उपयोग किया गया था, कुछ ऐसा;सी: रनटाइम पर कंपाइलर जानकारी

printf("This is compiled with %s version %s\n", COMPILER, COMPILER_VERSION); 

?

उत्तर

9

आप पूर्व प्रोसेसर के साथ ऐसा कर सकते हैं:

संदर्भ: http://predef.sourceforge.net/precomp.html

जीसीसी के लिए:

#if defined(__GNUC__) 
# if defined(__GNUC_PATCHLEVEL__) 
# define __GNUC_VERSION__ (__GNUC__ * 10000 \ 
          + __GNUC_MINOR__ * 100 \ 
          + __GNUC_PATCHLEVEL__) 
# else 
# define __GNUC_VERSION__ (__GNUC__ * 10000 \ 
          + __GNUC_MINOR__ * 100) 
# endif 
#endif 

MSVC के लिए बस का उपयोग करें:

_MSC_FULL_VER 
+0

+1: आप मुझे भी मारो;) –

+0

एर ... क्या होगा अगर मैंने माइक्रोसॉफ्ट के कंपाइलर्स का इस्तेमाल किया? – Arafangion

+0

_MSC_FULL_VER लिंक पर एक नज़र डालें। यह संकलक विशिष्ट पूर्व प्रोसेसर परिभाषित करने के लिए एक संदर्भ है। –

4

नहीं, संकलक का नाम प्राप्त करने का तरीका स्वयं संकलक-विशिष्ट है: -पी।

जीसीसी __VERSION__ मैक्रो प्रदान करता है, हालांकि।

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