在我的CMakeList.txt文件中,为了添加c ++ 11支持,我具有以下内容:
set(CMAKE_CXX_FLAGS“ $ {CMAKE_CXX_FLAGS} -std = c ++ 11”)
[在Mac上使用Xcode时效果很好。但是,我从Visual Studio中收到以下警告消息。任何想法?
命令行警告D9002:忽略未知选项'-std = c ++ 0x'
除编译警告外,程序可以正常编译并运行。我正在使用VS2013。如果我删除那条“设置标志”行,则警告消失。
-std=c++11
选项仅适用于GCC / CLang,在Visual Studio中不可用。默认情况下,Visual Studio中的C ++ 11支持应处于打开状态。因此,您应该仅将此选项用于类似GCC的编译器:
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()
如果使用的是最新版本的CMake,则可以尝试使用新的编译器功能机制:http://www.cmake.org/cmake/help/v3.1/manual/cmake-compile-features.7.html
Microsoft Visual Studio编译器(MSVC)拥有自己的set of compiler flags。简而言之:解决此问题的解决方案是使用以下命令,而不是您使用的命令。
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")