Когда я пытаюсь запустить созданный CMake make-файл для компиляции моей программы, я получаю сообщение об ошибке
Диапазон, основанный на циклах, не поддерживается в режиме 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 позже.