Linux环境封装静态库成动态库

简介: Linux环境封装静态库成动态库

前文《Linux环境封装静态库》是把往一个静态库加一些内容,封装成新的静态库,实际上就是解开 .a 还原成 .o 文件,再重新打包。

但是可能会有这么一种情况, 我们需要 把 libstart.a 加上控制生死的代码,封装成 libpower.so 动态库给 hades (冥王)使用。

其实也可以 把 libstart.a 解开还原成 多个 .o 文件,再一起编译出动态库。

那可不可以不解开,直接使用 ibstart.a,如下:

gcc -fPIC -shared -o libpower.so libstar.a dog.o pig.o 
ldd -r libpower.so
gcc -o hades hades.o libpower.so

从上图可以看出,虽然可以正常生成动态库,但是链接到 hades 的时候直接报错了。为什么会报错,我也不知道,埋个坑,后面填。

因此,还是需要 解开还原成 多个 .o 文件,再一起编译出动态库,如下:

ar -x libstar.a
gcc -fPIC -shared -o libpower.so dog.o pig.o moon.o earth.o sun.o
gcc -o hades hades.o libpower.so

目录
相关文章
|
6月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
769 11
|
8月前
|
存储 监控 Linux
Linux环境锁定关键文件防止误删操作流程。
总结以上内容,在Linux环境下锁定重要文档避免误删涉及到多种技术手段与策略组合运作, 包括但不限于利用chatter指挥官固化文档状态至只读模式、运作ACL精准调整访问权利列表、编排自动化流程简
430 20
|
8月前
|
Linux
Linux环境下的UDEV机制及其与守护进程的关联
实际使用时管理员需要熟悉编写合适udev rules去满足特殊需求;同时也需要注意避免编写过度复杂导致无法预料结果rules.UDEVD虽然稳健但错误配置可能导致无法预料问题因此需谨慎处理相关配置工作.
323 16
|
Linux 编译器 Shell
深入理解Linux中的动态库与静态库
深入理解Linux中的动态库与静态库
|
存储 Linux 编译器
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
197 0
|
Linux C语言
【Linux】C语言动态库和静态库的制作和使用
【Linux】C语言动态库和静态库的制作和使用
274 0
|
Linux 编译器 vr&ar
【Linux】—— 详解动态库和静态库
【Linux】—— 详解动态库和静态库
826 0
|
自然语言处理 Linux 编译器
【Linux学习】动态库和静态库
【Linux学习】动态库和静态库
330 1
|
编译器 Linux 程序员
【Linux:动态库与静态库】
【Linux:动态库与静态库】
485 0
下一篇
开通oss服务