我正在编译一个使用CMake的项目,假设编译器是G ++,但我实际上是在使用Visual Studio 2013.在CMakeLists.txt
文件中,我遇到了行
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic")
我认为我应该用
之类的东西取而代之if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ????") # what goes here??
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wextra -pedantic")
endif()
我是Visual Studio世界的新手,所以虽然我知道G ++标志的含义,但我不知道他们的Visual Studio等价物。我想:
-std=c++11
告诉G ++使用C ++ 2011,我认为它是Visual Studio 2013中的默认设置,所以我认为我不需要一个标记。-Wall
似乎可能大致对应/W4
,-Wextra
大致对应/Wall
?但是在VS上,/Wall
包含/W4
,所以/Wall
就足够了吗?-pedantic
检查是否严格遵守C ++标准。不知道VS的等价物是什么。任何人都可以确认使用的正确标志是Visual Studio吗?
答案 0 :(得分:0)
我正在使用Visual Studio 2015,但我不希望这些标志有任何重大差异: