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

目录
相关文章
|
1天前
|
Linux vr&ar C语言
|
2天前
|
存储 Linux 编译器
【Linux】详解动态库链接和加载&&对可执行程序底层的理解
【Linux】详解动态库链接和加载&&对可执行程序底层的理解
|
2天前
|
Ubuntu Linux 编译器
【Linux】详解动静态库的制作和使用&&动静态库在系统中的配置步骤
【Linux】详解动静态库的制作和使用&&动静态库在系统中的配置步骤
|
4天前
|
关系型数据库 MySQL Linux
在Linux系统上实现高效安装与部署环境的全方位指南
在Linux系统上实现高效安装与部署环境的全方位指南
|
5天前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
20 2
|
5天前
|
存储 Linux 编译器
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
【探索Linux】P.13(文件系统 | 软硬链接 | 动态库和静态库)
12 0
|
5天前
|
运维 NoSQL Linux
linux环境收集core文件步骤
请注意,生成core文件可能会占用磁盘空间,因此应谨慎使用。一旦完成故障排查,建议将相关的core文件删除以释放磁盘空间。
32 5
|
8月前
|
安全 Linux 测试技术
配置Goby工具环境(win,linux,macOS)
配置Goby工具环境(win,linux,macOS)
359 2