如何在CMake中建立静态库之间的传递依赖关系模型?

科奇基杜

给定一个可执行文件myExe,2个静态库myLib1myLib2给定以下依赖关系myExe -> myLib1 -> myLib2,应如何对myLib2之间的传递依赖关系建模myLib1

看来正确的方法可能是:

target_link_libraries(myLib2 myLib1)

但是,根据文档:

指定链接给定目标和/或其依赖项时要使用的库或标志

另外,add_dependencies似乎并不具有传递性。

因此,我觉得使用起来target_link_libraries混乱,我想知道是否还有另一种“更清洁”的方式。

齐瓦列夫

对于明确的用法依赖性myLib1 -> myLib2(即库myLib1 使用中定义的函数myLib2),请使用

target_link_libraries(myLib2 myLib1)

虽然target_link_libraries不影响文件 myLib2.a(因为从不链接静态库),但myLib2将链接到共享库或可执行文件看到效果

target_link_libraries(myExe myLib2)

将自动myExe链接myLib1


再次注意,当静态库,联动传播只能myLib2在使用同一个项目中,其通话target_link_libraries(myLib2 myLib1)

尝试target_link_libraries(myExe myLib2)另一个项目将仅与myLib2.a文件链接,该文件不包含有关的信息myLib2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Laravel中建立3模型之间的关系?

如何在RubyOnRails中设置模型之间的依赖关系

如何在Realm中建立3个模型之间的关系模型?

在Laravel 5.8中,如何在模型和包模型之间建立多态关系?

如何在可观察对象之间建立依赖关系?

如何在 ReactJS 中的两个表单过滤器之间建立依赖关系

如何在Enterprise Architect中的类和组件之间建立依赖关系

如何在Ruby on Rails中的模型之间建立一对多关系?

如何使cmake的OBJECT库中的`target_link_libraries`依赖关系可传递?

如何在数据库中建立一对多关系模型

如何在数据库JAVA中建立两个对象之间的关系

如何在Rust / Cargo中处理第三方静态C库依赖关系?

CMake 库和程序之间的依赖关系

如何在cmake中链接静态库

当关系依赖值时如何在多个表之间建立关系

如何在Laravel迁移和模型中建立自反关系

如何在ElasticSearch中建立社交关系模型?

如何在GAEJ中建立实体关系模型?

如何在laravel中的2个表之间建立关系

在 C++ 中解决静态库和共享库之间的依赖关系有什么区别?

CMake如何在QtCreator中处理对象依赖关系(.od)

如何在单选按钮之间建立关系?

在CMake中建立依赖

如何在Laravel Facades中传递依赖关系?

如何在关系中建立关系

如何在JavaScript中实现异步函数之间的依赖关系?

如何在同一两个模型之间建立多对多关系?

如何在Clojure中管理前端库依赖关系?

如何在Qt QBS中引用外部库依赖关系?