10

私はV8をビルドしていますが、デフォルトでは「シン」アーカイブとしてビルドされ.aます。ファイルには、オブジェクト ファイル自体ではなく、ファイル システム上のオブジェクト ファイルへのポインターが含まれているだけです。詳細については、 man arを参照してください。

このライブラリを中央の場所に配置して、他の人がリンクできるようにしたいと考えています。オブジェクト ファイルの集まりを提供する代わりに、通常のアーカイブ ファイルを提供する方が明らかにはるかに簡単です。

ビルドによって作成されたシン アーカイブを取得して通常のアーカイブに変換するにはどうすればよいですか? シンアーカイブ内のオブジェクトファイルを列挙し、それらを使用してアーカイブを再構築するのと同じくらい簡単だと思いますが、アーカイブのオブジェクトファイルを一覧表示するためにどのコマンドを使用できるかわかりません。

4

1 に答える 1

19

追加の調査の後、アーカイブ内のオブジェクト ファイルを列挙するために使用できます。その後は、アーカイブを作成するときに通常行うように、ar -tそのリストを に提供するだけです。ar

次のスクリプトは、すべてのライブラリに対してこれを一度に処理しました。

for lib in `find -name '*.a'`;
    do ar -t $lib | xargs ar rvs $lib.new && mv -v $lib.new $lib;
done
于 2014-08-28T18:06:43.247 に答える