我正在开发一个依赖多个第三方库的CMake项目,这些库可能进一步依赖于其他第三方库。依赖项都构建为静态库。我ExternalProject
用来下载和编译依赖项。
/=> lib4.a
/=> lib2.a => lib5.a
lib1.so
\=> lib3.a
与 链接lib1
时,缺少和lib2
的符号。我的替代方法是手动导入并链接到它们。但这将导致所有依赖项构建两次。当存在许多依赖项时,手动处理变得非常困难。lib4
lib5
lib4
lib5
lib1
我正在考虑是否有办法lib2
创建一个lib2-ALL
包含来自 和 的所有内容lib2
的lib4
大型库 () lib5
。所以lib1
只需要链接到lib2-ALL
. 但是,我不确定如何在 CMake 中正确执行此操作。
管理这种多级第三方库依赖项的正确方法是什么?