将瘦存档转换为正常存档

时间:2014-08-28 17:25:54

标签: static-libraries archive v8 ar

我正在构建V8,默认情况下,它构建为" thin" archive,.a文件基本上只包含指向文件系统上目标文件的指针,而不是包含目标文件本身。有关详细信息,请参阅man ar

我希望能够将这个库放在一个中心位置,以便其他人可以链接到它,显然提供一个普通的存档文件,而不是提供一大堆目标文件显然要容易得多。 / p>

如何获取构建生成的精简档案并将其转换为正常档案?我假设它就像枚举精简存档中的目标文件并使用这些文件重建存档一样简单,但我不知道可以使用什么命令来列出存档的目标文件。

1 个答案:

答案 0 :(得分: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