使用CMake打开链接器标志

Cla*_*bel 20 c c++ linker cmake visual-studio-2010

当使用CMake生成VS2010目标时,我希望/ LTCG标志打开(如果可能的话,仅用于发布+ releasewithdebinfo,但是如果它打开调试则可以).如何修改链接器标志?add_definitions()不起作用,因为它只修改编译器标志.是的,我把它包裹在if(MSVC)中.

如何修改链接器标志?

DMa*_*ags 28

您可以使用#pragma comment(链接器,...)修改MSC中的链接器标志

但是,如果您想在使用cmake的构建过程中执行此操作,请输入以下名称:

  • CMAKE_EXE_LINKER_FLAGS
  • CMAKE_SHARED_LINKER_FLAGS
  • CMAKE_MODULE_LINKER_FLAGS

(感谢Cmake.org).

  • 我不知道为什么上面的评论有两个赞成票。请参阅 https://cmake.org/cmake/help/git-master/variable/CMAKE_SHARED_LINKER_FLAGS.html?highlight=cmake_shared_linker_flags 和 https://cmake.org/cmake/help/git-master/variable/CMAKE_MODULE_LINKER_FLAGS.html?highlight =cmake_module_linker_flags :这些标志肯定是在最近的 CMake 版本中。 (3认同)
  • 在最近的CMake版本中,剩下的唯一标志是CMAKE_EXE_LINKER_FLAGS; 最好的办法是编辑目标属性(请参阅http://stackoverflow.com/questions/11783932/how-to-add-linker-or-compile-flag-in-cmake-file) (2认同)