iOSアプリケーションを1つ以上のスタティックライブラリにリンクするときに解決できなかった問題があります。iOSアプリケーションに静的ライブラリのすべてのシンボルが含まれています
私はいくつかの静的ライブラリ(MACH-Oタイプ:リロケータブルオブジェクトファイル)を作成しており、それぞれには多数のシンボルが含まれています。これらの静的ライブラリはそれぞれ、FATライブラリであり、各iOS/Simulatorアーキテクチャのスライスを含んでいます。私の理解から、私がiOSアプリケーションをコンパイルするとき、私のアプリケーションで使われているシンボルだけがコンパイルされ、私のアプリケーションに含まれていなければならないが、すべてのシンボルが含まれている。
私はいくつかのコマンドotoolを使用してテスト、NM、および他のツールをやったと私はライブラリのコードのいずれかを呼び出していない場合でも、これらのライブラリのいずれかにリンクする際いることがわかります、すべてのシンボルがアプリケーションにコンパイルされています。私のアプリケーションは42kBから3MB以上になります。
これはなぜ起こっているのですか?
問題は静的ライブラリ(他のライブラリとリンクする必要がある)にたくさんのシンボルがあるということではなく、すべてのシンボルが私のアプリケーションに含まれているということだけです。 たとえば、2つの静的ライブラリ_lib1_と_lib2_があります。 _lib1_で使用されている_gsym_など、グローバルシンボルをエクスポートします_lib1_でアプリケーションをリンクすると(コードを呼び出さないでください)、_gsym_はアプリケーションで使用されず、_lib2_で間接的に使用されるため、しかし、私の最終的なアプリケーションには含まれていますが、これは私が経験している問題です。 他の提案はありますか? – CocoaTouchGuru