将库链接到cmake项目中的所有目标

时间:2015-06-13 13:10:11

标签: cmake

让我描述一下我认为是一个足够常见的用例,它应该得到支持。考虑一个项目,该项目由一个库和一组使用该库的可执行文件组成。一个简单的方法是add_library,然后是一系列add_executable()target_link_lib()对。

这是很多样板编码。能够做类似set(PROJECT_LINK_LIBS,lib1 ......)的事情会很高兴,并让cmake删除额外的样板。

更多地思考,我意识到我想要一个与include_directories类似的link_libraries函数。我认为这是:

  1. 在很多情况下会很有用。
  2. 会导致干燥器CMakeLists。
  3. 鼓励更好的代码组织 - 以一种所有可执行文件具有相同依赖性的方式组织文件夹,代码和可执行文件是一种自然的动机 - 当然是一种简洁的做法。
  4. 有这样的东西吗?

2 个答案:

答案 0 :(得分:2)

这个答案可能已经过时
检查新的变量集CMAKE_<LANG>_STANDARD_LIBRARIES

原始答案: 现在看来存在一个CMAKE_STANDARD_LIBRARIES变量,您可以根据需要附加库。但是,这个变量似乎期望完全通向库。

请参阅here

答案 1 :(得分:1)

https://stackoverflow.com/a/50295894/129550所述,请求的link_libraries(example example2)函数实际上实际上是cmake的一部分。