假设我有 a.so 和 b.so。 我可以将 c.so 生成为具有 a 和 b 导出的所有函数的单个共享库,当然可以解决所有内部依赖关系(即 b.so 的所有函数由 a.so 调用,反之亦然)?
我试过了
gcc -shared -Wl,soname,c.so -o c.so a.so b.so
但它不起作用。
如果我将 a.o 和 b.o 归档在 a.a 和 b.a 中(不应该修改 a.o 和 b.o),也一样
gcc -shared -Wl,soname,c.so -o c.so a.a b.a
谢谢
最佳答案
在所有 UNIXen 上,实际上将多个共享库合并为一个实际上是不可能的,除了 AIX:链接器将 .so 视为“最终”产品。
但是将文件合并到 .so 应该不是问题:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive
关于c - 合并多个 .so 共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/915128/