N个静态库转换成静态库或动态库(.a to .so)
发布日期:2021-06-29 14:21:28 浏览次数:3 分类:技术文章

本文共 460 字,大约阅读时间需要 1 分钟。

多个静态库合并成1个静态库:可行。实例aNto1
静态库 封装成 动态库:可行。实例a2so

实例aNto1:

类似tar拆包,再重新打包。
1,将所有静态库中.o释放到一个同一个目录下。
2,将该目录下所有的.o合并到一个.a中

mkdir /tmp/libABC

cd /tmp/libABC
ar x /usr/local/lib/A.a
ar x /usr/local/lib/B.a
ar x /usr/local/lib/C.a
ar cru libABC.a *.o
ranlib libABC.a

ar命令说明:

x :extract的意思
r :replace的含义。
c :    禁止在创建库时产生的正常消息。
u :当和 -u 标志(更新)一起使用时,-r 标志仅替换自从最后一次添加到库中以后修改的文件。

ranlib说明

ranlib的作用:更新静态库的符号索引表。
将编译完成的.o文件直接加入到了库的末尾,但并没有更新库的有效符号表。因此连接库时,程序无法找到,新追加.o中包含的函数或者变量。 

转载地址:https://chilaidashi.blog.csdn.net/article/details/108375994 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux - dm(disk mapper)
下一篇:安全加密 - 沙盘sandboxie - 云容器 - 安全访问控制(MAC SMACK SELINUX)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月22日 21时42分23秒