CMake:拥有不同链接标志的正确方式

CMake: correct way to have differing link flags?

本文关键字:方式 标志 链接 拥有 CMake      更新时间:2023-10-16

我的项目中同时有C++和C文件。我使用CMAKE_CXX_FLAGSCMAKE_C_FLAGS为每种编译标志分别设置了不同的编译标志。如何为每个链接器创建不同的链接器标志?

如果像CMAKE_CXX_EXE_LINKER_FLAGSCMAKE_C_EXE_LINKER_FLAGS这样的东西存在,但只有CMAKE_EXE_LINKER_FLAGS,那就太好了。

CMAKE_CXX_LINK_EXECUTABLE 
CMAKE_C_LINK_EXECUTABLE 

看起来他们可以解决你的问题。

请记住,您正在学习编译器和特定于平台的东西,如果您需要一个多平台、多编译器的项目,您可以选择合适的条件组合来选择合适的宏集。

  • 生成规则

事实证明,至少在CMake 3.0.2版本中,./share/cmake-3.0/Modules/CMakeCXXInformation.cmake中使用了以下变量CMAKE_C_LINK_FLAGSCMAKE_CXX_LINK_FLAGS

它们没有记录在我查看过的任何地方,也没有出现在生成的文件或缓存中,因此我没有找到它们。但他们似乎在做我需要的事。

希望CMake将继续支持它们,而不是像有时未记录的功能那样,在没有警告的情况下突然删除它们。