最終的な実行可能ファイルにリンクするいくつか (約 20 ~ 30) の静的ライブラリで構成される大きな iOS プロジェクトがあります。一部のコンポーネントはプラットフォームに依存せず (純粋な C++)、一部は iOS 固有 (Obj-C/Obj-C++) です。C++ テンプレートが集中的に使用されるため、各オブジェクト ファイルにはあいまいなリンケージを持つシンボルが多数含まれています。問題は、これらのシンボルが最終的な実行可能ファイルのリンク中にのみマージされ、静的ライブラリの作成時にはマージされないことです。各ライブラリには、大量の重複シンボル (6 ~ 60 クローン) が含まれています。そのため、アプリの最終的なリンクには数分かかります。これは、デバッグや小さな変更を行うときに非常に面倒です。
ライブラリごとにあいまいなリンケージを持つシンボルのマージを実行する方法はありますか?
動的ライブラリを使用すると、これが自動的に行われることがわかりました。いくつかのハッキング (http://sumgroup.wikispaces.com/iPhone_Dynamic_Library) により、iOS 用の動的ライブラリを構築することが可能です。dylib を静的にリンクする (単一の実行可能ファイルにリンクする) 方法はありますか?
もちろん、結果のアプリをデバッグできることは必須です。