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插入到最后。

posted @ 2020-02-25 22:02  shinedream  阅读(1096)  评论(0编辑  收藏  举报