如何在CMake中为静态库之间的可传递依赖关系建模



给定一个可执行的myExe以及两个静态库myLib1myLib2。给定以下依赖关系myExe -> myLib1 -> myLib2,应该如何建模myLib2myLib1之间的传递依赖关系?

看来正确的方法可能是:

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)

将自动将CCD_ 15与CCD_。


再次注意,只有在调用target_link_libraries(myLib2 myLib1)同一项目中使用myLib2时,静态库的这种链接传播才有效。

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

相关内容

  • 没有找到相关文章

最新更新