เมื่อฉันพยายามเรียกใช้ makefile ที่สร้างโดย CMake เพื่อรวบรวมโปรแกรมของฉันฉันได้รับข้อผิดพลาดนั้น
ไม่รองรับช่วงสำหรับลูปในโหมด 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")
แล้วซึ่งยังใช้งานไม่ได้
ฉันไม่เข้าใจวิธีการเปิดใช้งานคุณสมบัติ C ++ 11 โดยใช้ CMake
set(CMAKE_CXX_STANDARD 11)
(ก่อนกำหนดเป้าหมาย) เป็นวิธีที่ดีที่สุด
CXX_STANDARD
มันใช้ไม่ได้กับ MSVC ดังนั้นโดยทั่วไปคุณต้องถอยกลับไปtarget_compile_features
ถ้าคุณต้องการบางสิ่งที่ใช้งานข้ามแพลตฟอร์มได้
SET(CMAKE_CXX_FLAGS "-std=c++0x")
ทำงานที่ดีสำหรับฉันดังนั้นอาจมีปัญหาที่อื่นในแฟ้ม CMakeLists ตรวจสอบให้แน่ใจว่าคุณไม่ได้เขียนทับเนื้อหาของ CMAKE_CXX_FLAGS โดยไม่ตั้งใจในภายหลัง