在cmake中添加c ++ 0x支持

ewo*_*wok 12 c++ cmake c++11

我在cmake中配置了一个相当大的应用程序.我最近添加了几个利用C++ 0x功能的类,它打破了构建,因为cmake没有配置为使用C++ 0x支持进行编译.如何将其添加为cmake的选项?

jua*_*nza 10

您需要将标志添加到CMAKE_CXX_FLAGS:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
Run Code Online (Sandbox Code Playgroud)


fas*_*ked 7

我将此代码段用于gcc,但这是一种更复杂的方式

if(CMAKE_COMPILER_IS_GNUCXX)
   SET(ENABLE_CXX11 "-std=c++11")

   EXECUTE_PROCESS(COMMAND "${CMAKE_CXX_COMPILER} -dumpversion" OUTPUT_VARIABLE GCC_VERSION)
   if (GCC_VERSION VERSION_LESS 4.7)
      SET(ENABLE_CXX11 "-std=c++0x")
   endif()

   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ENABLE_CXX11}")
endif()
Run Code Online (Sandbox Code Playgroud)