そのため、過去に静的ライブラリを数回ネストしましたが、これが好きではなく、少し問題が発生しています。
ここでは、A、B、C の 3 つの静的ライブラリがあり、それらを次のように使用する 1 つのプロジェクトがあるとします。
A は、一般的に使用されるカスタム ビュー、データ構造、およびカテゴリで構成されるベース ライブラリです。B は、複数のプロジェクト間で共有されるビュー コントローラーを含む A にリンクされたライブラリです。C は、複数のプロジェクト間で共有されるビュー コントローラーを含む、A にリンクされた別のライブラリです。
この特定のプロジェクトでは、B と C のコードを使用しています。したがって、構造は次のようになります。
A
/ \
B C
\ /
Project
そして、Xcode がスタティック ライブラリをリンクする方法は基本的にそれらをマージするため、B と C は両方とも A のすべてのシンボルを持っています。そのため、シンボルの重複リンカ エラーが発生しています。これに対処するにはどうすればよいですか?何かを弱くリンクする必要がありますか? または、私が見逃している特定のフラグがありますか? バイナリをリンクする以外に、ある種の依存関係を設定する必要がありますか?
ここでグーグルで検索して、多くの良い情報を見つけましたが、この特定の状況にひねることができたものは何もありません.
考えの更新
ですから、静的ライブラリを読んだ後、可能な解決策のように思われるので、これを尋ねさせてください。
3 つの独立した静的ライブラリを使用するのではなく、それらすべてを 1 つのプロジェクトに配置して、単に複数の静的ライブラリ ターゲットを使用する必要がありますか? ターゲットの依存関係を使用せずに、ターゲットの適切なファイルとヘッダーを含む A、AB、AC、および ABC ターゲットだけを使用しますか? これは間違いなくビルド設定がかなり複雑になり、ソース配布が少し複雑になる可能性がありますが、現在の問題を解決し、物事を処理するためのより良い方法になる可能性があります. どう思う?