将选项传递给编译器,但不传递给cmake中的链接器

问题描述

使用cmake,可以将带有CMAKE_CXX_FLAGSCMAKE_CXX_LINK_FLAGS的编译器选项传递给链接器。

但是据我所知,CMAKE_CXX_FLAGS也被传递给链接器。

是否可以将选项传递给编译器而不传递给链接器?

解决方法

使用 target_compile_options 将编译器选项添加到特定目标

https://cmake.org/cmake/help/latest/command/target_compile_options.html

使用 target_link_options 将链接器选项添加到特定目标

https://cmake.org/cmake/help/latest/command/target_link_options.html

除非您真的知道自己在做什么,否则现代cmake项目应避免使用CMAKE_CXX_FLAGS / CMAKE_CXX_LINK_FLAGS。