N个静态库转换成静态库或动态库(.a to .so)

tech2022-09-21  104

多个静态库合并成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中包含的函数或者变量。 

最新回复(0)