存档文件存档

时间:2012-09-20 17:51:03

标签: linux static-libraries ar

  

可能重复:
  How to merge two “ar” static libraries into one

我有多个档案文件,如下所示

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`

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

任何帮助将不胜感激

1 个答案:

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