Коли я намагаюся запустити створений CMake makefile для компіляції своєї програми, я отримую помилку в цьому
діапазон на основі циклів не підтримується в режимі 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.