给定一个可执行的myExe
以及两个静态库myLib1
和myLib2
。给定以下依赖关系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)
将自动将CCD_ 15与CCD_。
再次注意,只有在调用target_link_libraries(myLib2 myLib1)
的同一项目中使用myLib2
时,静态库的这种链接传播才有效。
尝试从另一个项目中target_link_libraries(myExe myLib2)
将仅与myLib2.a
文件链接,该文件不包含有关myLib2
的信息。