Met*_*tiu 37 c unix linux gcc shared-libraries
说我有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
但它不起作用.
同样如果我将ao和bo归档为aa和ba(不应该修改ao和bo),并且这样做
gcc -shared -Wl,soname,c.so -o c.so a.a b.a
谢谢
Emp*_*ian 42
除了AIX之外,在所有UNIXen上实际上不可能将多个共享库合并为一个:链接器认为.so是"最终"产品.
但将档案合并到.so应该不是问题:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive
Run Code Online (Sandbox Code Playgroud)
在实践中,这是不可能的.
从链接器的角度来看,SO库是最终产品,不包含链接所需的重定位信息.
如果您可以访问两个库的源文件或目标文件,则可以直接从它们编译/链接组合的SO.
| 归档时间: |
|
| 查看次数: |
27617 次 |
| 最近记录: |