如何解决cmake中多级依赖的问题?

http://main.cc 如下, 其中使用到了glog库.#include <iostream> #include <glog/logging.h…
关注者
8
被浏览
11,652

2 个回答

这个不是cmake的坑,应该是你glog库的坑,我猜想glog库是你自行编译,而glog库编译时没有动态链接gflags导致的。如果你生成动态库时,就使用target link library生成,再配合上rpath寻找路径,是可以支持a依赖b,b依赖c,而你在a中只要写b的依赖而不用写c的依赖。

泻药。

带有多级链接依赖的cmake项目我写过,不需要做任何事情,如果你的foo要链接bar,bar要链接baz,cmake会自动让你的foo也链接baz。然后带有import库我也写过。但我唯独没写过多级链接依赖还是import的玩意。

搜了一下文档,target_link _libraries也可以声明PUBLIC|INTERFACE|PRIVATE,你试试让glog去INTERFACE形式链接gflags?

target_link_libraries(libglog INTERFACE libgflags)