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

Spa*_*ose 8 cmake

考虑一个由一个库和一组使用该库的可执行文件组成的项目。一种简单的方法是add_library(),后接一系列对add_executable() target_link_libraries()

这是大量的样板代码。如果能够执行类似的操作set(PROJECT_LINK_LIBS, lib1 ...)并让 CMake 删除额外的样板文件,那就太好了。

进一步思考这一点,我意识到我想要一个link_libraries行为类似于 的函数include_directories。我认为:

  1. 在很多情况下会有用。
  2. 将导致干燥机 CMakeLists。
  3. 会鼓励更好的代码组织——会有一种自然的动力来组织文件夹、代码和可执行文件,使所有可执行文件都具有相同的依赖关系——当然是一种干净的做法。

有这样的事吗?

fuz*_*Tew 8

正如/sf/answers/3520712611/中提到的,请求的link_libraries(example example2)函数实际上现在是 cmake 的一部分。


Ant*_*nio 2

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

原始答案: 看来现在CMAKE_STANDARD_LIBRARIES存在一个变量,您可以根据需要在其中附加库。然而,这个变量似乎期望库的完整路径。

这里