Linux gcc(ar命令)打包库到另一个库中的另外一种方法
最近的项目中需要在Libcurl写一个wrapper,最好的办法是把我的wrapper和libcurl包在一起,做一个新的静态库
但是很遗憾,直接用以下命令产生的libmywrapper.a 是不能用的。
ar libmywrapper.a wrapper.o libcurl.a
原因是ar没有把libcurl.a做处理。
查了一下,有2个方法
1. 用ar -x 把libcurl.a 释放出来和wrapper.o 一起重新打包
2.还一种是利用ar脚本的方法,本质上还是类似,只是更高级了一些。
今天,我发现了一个新的方法,更方便一些
cp $(LIB_DIR)/libcurl.a libmywrapper.a ar -r libmywrapper.a wrapper.o
原理很简单,先复制原来的lib,然后利用-r把新的wrapper插入到最后。