4

所以我有,比如说,libA.a libB.a libC.a libD.so还有一些链接到libPack.a. 稍后,我将创建libFinal.so链接到 libPack.a 的链接,并且 libFinal.so 最终用于可执行文件。

当链接器创建静态库时,我相信每个动态库都会在编译时解析并包含在静态库中。-fPIC对于 ( ) 第三方静态库,它是否也能做到这一点?

如何libFinal.so使用 CMake 将一堆静态库和共享库组合成一个巨大的独立库?如果这不可能,是否意味着我必须向客户端提供所有 lib 依赖项?

我已经设法让可执行文件与一个没有依赖项(没有libA...D)的虚拟库一起工作,但是当我使用链接到libA..D. 我的猜测是静态库不包含在内libPack.a,但我不确定发生了什么。

4

1 回答 1

0

以下答案可能有用: 如何将多个 C/C++ 库合并为一个?合并多个 .so 共享库

如果这满足您的需求,您可以配置 CMake 脚本以将预链接事件添加到项目中,该事件将库组合到 libFinal.so 中,并将 libFinal.so 进一步链接到可执行文件。

于 2013-05-14T18:22:47.047 回答