0

重複の可能性:
2 つの「ar」静的ライブラリを 1 つにマージする方法

以下のように複数のアーカイブファイルがあります

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

これらのライブラリにはすべて obj ファイルがたくさんあります。

これらすべてのライブラリの 1 つのアーカイブを作成したいと考えています。

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 に答える