0
点赞
收藏
分享

微信扫一扫

如何在CMake中设置编译器警告级别

雪域迷影 2022-01-26 阅读 103

在CMake中设置编译器警告级别

传统的方法

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)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
endif()

现代CMake

Modern CMake

推荐使用这种方法

if(MSVC)
  target_compile_options(${TARGET_NAME} PRIVATE /W4 /WX)
else()
  target_compile_options(${TARGET_NAME} PRIVATE -Wall -Wextra -pedantic -Werror)
endif()

应用到所有目标

如果想要将其应用到所有目标也可以使用

add_compile_options(...)

注意

上面用到的所有的编译选项都可以按需修改
具体可以查阅CMake官方文档

举报

相关推荐

0 条评论