如何在CMake中激活C+11?当我试图运行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-9 ubuntu3)4.6.1我也试过SET(CMAKE_CXX_FLAGS "-std=c++0x")也不起作用。我不明白如何使用CMake激活C+11功能。
3 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
include(CheckCXXCompilerFlag)CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")endif()
C++11
, g++ 4.6.1
g++
- 3 回答
- 0 关注
- 1219 浏览
添加回答
举报
0/150
提交
取消