何时在target_link_libraries中包含库

时间:2015-01-08 14:16:29

标签: c++ cmake

假设我有一个可执行的Alpha,它必须与共享库Beta链接。 Beta本身依赖于共享库Gamma。 Gamma已经存在,但我必须使用cmake编译Alpha和Beta。

因此,使用两个CMakeLists.txt文件(Alpha和Beta各一个),我使用命令target_link_libraries来指示编译需要哪些库。我的问题是:我需要添加Gamma中的哪两个CMakeLists.txt文件?

Beta直接依赖于Gamma,因为Beta中的代码会调用Gamma中的函数。但是,Alpha也间接依赖于Gamma,所以我需要告诉Alpha的CMakeLists.txt文件吗?

1 个答案:

答案 0 :(得分:1)

如果CMake了解Beta-> Gamma依赖关系,它应该能够使一切正常。如果在某种情况下您构建了Beta而没有告诉CMake它对Gamma的依赖性(可能这样做),那么您必须明确表达Alpha-> Gamma依赖关系。