जब मैं अपने प्रोग्राम को संकलित करने के लिए सीएमके जनरेट किए गए मेकफाइल को चलाने की कोशिश करता हूं, तो मुझे वह त्रुटि मिलती है
लूप के लिए आधारित रेंज C ++ 98 मोड में समर्थित नहीं हैं।
मैंने add_definitions(-std=c++0x)
अपने साथ जोड़ने की कोशिश की CMakeLists.txt
, लेकिन इससे कोई फायदा नहीं हुआ।
मैंने यह भी कोशिश की:
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-std=gnu++0x)
endif()
जब मैं करता हूं g++ --version
, मुझे मिलता है:
g ++ (Ubuntu / Linaro 4.6.1-9ubuntu3) 4.6.1
मैंने भी कोशिश की है SET(CMAKE_CXX_FLAGS "-std=c++0x")
, जो भी काम नहीं करता है।
मुझे समझ में नहीं आ रहा है कि मैं सीएमके का उपयोग करके सी ++ 11 सुविधाओं को कैसे सक्रिय कर सकता हूं।
set(CMAKE_CXX_STANDARD 11)
(लक्ष्य को परिभाषित करने से पहले) सबसे अच्छा तरीका है।
CXX_STANDARD
करता है , इसलिए मूल रूप से आपको वापस गिरना होगा यदि आप ऐसा कुछ चाहते हैं जो क्रॉस-प्लेटफॉर्म पर काम करे। target_compile_features
SET(CMAKE_CXX_FLAGS "-std=c++0x")
मेरे लिए ठीक काम करता है, इसलिए वहाँ शायद CMakeLists फ़ाइल में कहीं और एक समस्या है। सुनिश्चित करें कि आप गलती से बाद में CMAKE_CXX_FLAGS की सामग्री को अधिलेखित नहीं करते हैं।