Mat*_*ine 7 v8 archive static-libraries unix-ar
我正在构建V8,默认情况下它构建为"瘦"存档,其中.a文件基本上只包含指向文件系统上的目标文件的指针,而不是包含目标文件本身.有关详细信息,请参阅man ar
我希望能够将这个库放在一个中心位置,以便其他人可以链接到它,显然提供一个普通的存档文件,而不是提供一大堆目标文件显然要容易得多.
如何获取构建生成的精简档案并将其转换为正常档案?我假设它就像枚举瘦归档中的目标文件并使用它们重建归档一样简单,但我不知道可以使用什么命令来列出归档的目标文件.
Mat*_*ine 18
经过一些额外的研究,ar -t可以用来枚举存档中的目标文件,所以在此之后,只需要ar像创建存档时那样提供该列表.
以下脚本一次为所有库处理此问题:
for lib in `find -name '*.a'`;
do ar -t $lib | xargs ar rvs $lib.new && mv -v $lib.new $lib;
done
Run Code Online (Sandbox Code Playgroud)