0

libAとリンクするlibXと、libAともリンクするlibYがあります。ここで、同じプロジェクトでlibXとlibYを使用する必要があるため、これらは同じアプリにリンクされています。議論のために、libAのサイズが5 MBで、iOSアプリを作成しているとしましょう。

この例のlibAはlibXとlibYの両方に含まれるため、このような状況ではlib間に競合がないことをここで読みました。ただし、これにより、アプリのサイズが5MBではなく10MB大きくなります。

アプリにlibAを2回含めないようにするには、どうすればよいですか?そのためのコンパイラスイッチはありますか?

それ以外に、ライブラリをセットアップしてXcodeプロジェクトに分割する方法に関して、libAが1回だけリンクされるようになるためにできることはありますか?たとえば、最終的なプロジェクトでlibAがリンクされたライブラリとして追加されると仮定して、libAにリンクせずにlibXとlibYをビルドできますか?

通常、私はlibAをダイナミックライブラリとしてビルドするだけですが、私が理解している限り、それはiOSでは許可されていません。

4

2 に答える 2

2

AFAIK静的ライブラリの「libXはlibAにリンクしている」と言うのは誤りです。静的ライブラリは、オブジェクトファイルの単なるアーカイブです。アプリをリンクするときに実際のリンクが非難されます。したがって、重複するライブラリはありません。

于 2010-11-01T10:44:30.240 に答える
0

依存関係から(可能な)リンクフェーズを削除してから、必要なすべてのライブラリを最終的な実行可能ファイルにリンクします。

于 2010-11-01T10:44:23.970 に答える