说我有a.so和b.so。我是否可以将c.so生成为具有a和b导出的所有功能的单个共享库,当然可以解决所有内部依赖关系(即a.so调用的b.so的所有功能,反之亦然)?
我试过了
gcc -shared -Wl,soname,c.so -o c.so a.so b.so
但这不起作用。
如果我在aa和ba中归档ao和bo(也不应修改ao和bo),也是如此
gcc -shared -Wl,soname,c.so -o c.so aa ba
谢谢
除了AIX之外,在所有UNIXen上实际上都不可能将多个共享库合并为一个:链接器将.so视为“最终”产品。
但是将档案合并到.so中应该不是问题:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive