Ketika saya mencoba menjalankan makefile CMake yang dihasilkan untuk mengkompilasi program saya, saya mendapatkan kesalahan itu
rentang berbasis loop tidak didukung dalam mode C ++ 98.
Saya mencoba menambahkan add_definitions(-std=c++0x)ke saya CMakeLists.txt, tetapi tidak membantu.
Saya mencoba ini juga:
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-std=gnu++0x)
endif()
Ketika saya melakukannya g++ --version, saya mendapatkan:
g ++ (Ubuntu / Linaro 4.6.1-9ubuntu3) 4.6.1
Saya juga sudah mencoba SET(CMAKE_CXX_FLAGS "-std=c++0x"), yang juga tidak berhasil.
Saya tidak mengerti bagaimana saya bisa mengaktifkan fitur C ++ 11 menggunakan CMake.
set(CMAKE_CXX_STANDARD 11)(sebelum mendefinisikan target) adalah cara terbaik.
CXX_STANDARDitu tidak bekerja pada MSVC, jadi pada dasarnya Anda harus kembali ke target_compile_featuresjika Anda menginginkan sesuatu yang bekerja lintas-platform.
SET(CMAKE_CXX_FLAGS "-std=c++0x")bekerja dengan baik bagi saya, jadi mungkin ada masalah di tempat lain dalam file CMakeLists. Pastikan Anda tidak sengaja menimpa konten CMAKE_CXX_FLAGS nanti.