Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在构建V8,默认情况下它构建为“瘦”存档,其中.a文件基本上只包含指向文件系统上目标文件的指针,而不是包含目标文件本身。有关详细信息,请参阅man ar。
.a
我希望能够把这个库放在一个中心位置,以便其他人可以链接到它,而且提供一个普通的存档文件显然要容易得多,而不是提供一堆目标文件。
如何获取构建产生的精简档案并将它们变成普通档案?我认为这就像枚举精简存档中的目标文件并使用这些文件重建存档一样简单,但我不知道可以使用什么命令来列出存档的目标文件。
经过一些额外的研究,ar -t可用于枚举存档中的目标文件,因此之后只需ar像通常在创建存档时那样提供该列表即可。
ar -t
ar
以下脚本一次为所有库处理了此问题:
for lib in `find -name '*.a'`; do ar -t $lib | xargs ar rvs $lib.new && mv -v $lib.new $lib; done