2012-08-10 21 views
21

के लिए चेक करें I संकलक की C++ 11 क्षमताओं की जांच के लिए AX_CXX_COMPILE_STDCXX_0X (autoconf-archive पर देख सकते हैं) का उपयोग करें। यह सही ढंग से निर्धारित करता है कि -std=c++0x आवश्यक है, लेकिन इसे CXXFLAGS पर नहीं जोड़ता है। मैंने मैक्रो स्रोत पर एक नज़र डाली और यह वास्तव में जांच करता है लेकिन फिर पिछले झंडे को बहाल करता है।Autotools C++ 11

CXXFLAGS को C++ 11 स्रोत संकलित करने में सक्षम होने के लिए मुझे क्या करना चाहिए?

बस जोड़ने -std=c++0xAM_CXXFLAGS के लिए अच्छा समाधान नहीं है, क्योंकि मैं संकलक मुझे autoconf डेवलपर्स पर सी ++ 11 मोड में संकलन, नहीं बनाने का बोझ डालना चाहते हैं।

उत्तर

28

जो आप खोज रहे हैं उसे पहले से ही AX_CXX_COMPILE_STDCXX_11, autoconf-archive का हिस्सा बना दिया गया है। यह पर्यावरण के लिए आवश्यक विकल्प जोड़ देगा (पूर्व में CXXFLAGS के माध्यम से, अब CXX के माध्यम से) और यदि कोई सी ++ 11 समर्थन उपलब्ध नहीं है तो त्रुटि हो जाएगी।

+0

'configure.ac:15: त्रुटि: AC_LANG_ASSERT: सी ../../lib/autoconf/lang.m4:156: वर्तमान भाषा सी ++ नहीं है AC_LANG_ASSERT से ... m4/ax_cxx_compile_stdcxx_11 विस्तार होता है। एम 4: 48: AX_CXX_COMPILE_STDCXX_11 से विस्तारित किया गया है ... config.ac:15: शीर्ष स्तर autom4te:/usr/bin/m4 निकास स्थिति के साथ विफल: 1 एक्लोकल: त्रुटि:/usr/bin/autom4te बाहर निकलने में विफल स्थिति: 1 autoreconf: एक्सेलोकल निकास स्थिति के साथ विफल रहा: 1' मैंने इसे 'AC_PROG_CXX' के बाद रखा है। मैं क्या गलत करता हूँ? – KAction

+0

लंबी टिप्पणी के लिए खेद है। मुझे इसे प्रारूपित करने का कोई तरीका नहीं मिला। खैर, मैंने 'AC_LANG ([C++]) को 'AX_CXX_COMPILE_STDCXX_11' से पहले जोड़ा, लेकिन मुझे लगता है कि इसे' AC_PROG_CXX' 'कहा जाता है। – KAction

+1

@illusionoflife 'AC_PROG_CXX' ऐसा नहीं करना चाहिए क्योंकि यह उन स्क्रिप्ट को कॉन्फ़िगर करेगा जो सी और सी ++ दोनों चेक हैं। अधिकांश ऑटोकॉन्फ चेक सी पर भरोसा करते हैं। आपके पास AC_LANG जोड़ना सही काम है। – hvd

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