0

可能重复:
如何将两个“ar”静态库合并为一个

我有多个存档文件如下

folder1/libfolder1.a
folder2/libfolder2.a
folder3/libfolder3.a

所有这些库都有一堆 obj 文件。

我想为所有这些库创建一个存档。

ar -rcs libGlobal.a folder1/libfolder1.a folder2/libfolder2.a folder3/libfolder3.a 

但它不起作用。它说我需要提取所有这些 .a 文件,一旦我拥有所有这些 obj 文件,我可以像下面那样做

ar -rcs `ls *.o`

但我不想做所有这些讨厌的事情。我想要明确的解决方案,例如

ar -rcs libGlobal.a `ar -x folder1/libfolder1.a` `ar -x folder2/libfolder2.a` `ar -x folder3/libfolder3.a`

我想要的解决方案与此类似,因为我在此示例中给出的文件夹结构并不是那么简单。

任何帮助,将不胜感激

4

1 回答 1

0

虽然它没有表示为单个命令,但这应该可以工作:

pushd folder1; ar -x libfolder1.a; popd
pushd folder2; ar -x libfolder2.a; popd
pushd folder3; ar -x libfolder3.a; popd
ar -rcs libGlobal.a folder1/*.o folder2/*.o folder3/*.o
rm folder1/*.o folder2/*.o folder3/*.o
于 2012-09-20T20:34:20.537 回答