如何在CMake中设置警告级别?
如何使用CMake设置项目的警告级别 (而不是整个解决scheme)? 应该在Visual Studio和GCC上工作 。
我发现各种select,但大多数似乎要么不工作,或不符合文件。
你可以做类似这样的事情:
if(MSVC) # Force to always compile with W4 if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") endif() elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) # Update if necessary set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic") endif()
这是我迄今为止发现的最好的解决scheme(包括编译器检查):
if(CMAKE_BUILD_TOOL MATCHES "(msdev|devenv|nmake)") add_definitions(/W2) endif()
这将在Visual Studio中设置警告级别2。 我想用-W2
也可以在GCC中工作(未经testing)。
@Williams更新:它应该是-Wall
for GCC。