相关:Combining several static libraries into one using CMake
当我们使用CMake构建库
add_library(example STATIC lib.c)
时,我们会得到一个libexample.a
文件。如果我们有以下依赖:target_link_libraries(example PUBLIC lib123)
其中 lib123
是另一个库,那么我们必须在计算机上安装 libx
才能使用 libexample.a
。否则,如果我们执行 gcc main.c libexample.a
编译器将无法在 lib123
中找到 libexample.a
中的函数所需的符号。
上面的链接提到了如何手动合并这些库。但是在合并
lib123
的时候,我们发现lib123
有很多其他的依赖。
如何自动解析所有的依赖,并全部合并到
libexample.a
?