合并多个 .so 共享库
- 2024-10-11 08:36:00
- admin 原创
- 78
问题描述:
假设我有 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 aa ba
谢谢
解决方案 1:
除了 AIX 之外,在所有 UNIXen 上将多个共享库合并为一个实际上是不可能的:链接器将 .so 视为“最终”产品。
但将档案合并到 .so 中应该没有问题:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive
解决方案 2:
但实际上这是不可能的。
从链接器的角度来看,SO 库是不包含链接所需重定位信息的最终产品。
如果您有权访问两个库的源文件或目标文件,则可以直接从它们编译/链接组合的 SO。
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD