かなり複雑な iOS アプリケーションを開発しています。開発を合理化するために、各モジュールをスタンドアロン プロジェクトとして開発し始めました。これらのモジュールは、最上位のアプリケーション プロジェクトで一緒に構成され、依存関係のツリーが作成されます。
以前にこのアプローチを成功させたことがありますが、今回は問題を引き起こす共有依存関係 (C) があります。
A
/|\
/ | \
B C D
/ \ \
C E C
A は最上位のアプリケーション プロジェクトで、C は関数の「コア ライブラリ」です。このコア ライブラリは、A 自体、およびモジュール B と D の依存関係です。その結果、複数のコンパイルが発生し、ビルド フォルダーでシンボルが重複し、リンクに失敗します。
今、私は実用的で、A からの参照を削除することができます。これはとにかく B によってビルド フォルダーにコンパイルされるためです。D が関与していなければ、これはうまくいくでしょう。しかし、B と D からの C 依存関係の重複を解決するにはどうすればよいでしょうか? B および D プロジェクトは、スタンドアロンでコンパイルするときに C への参照が必要ですが、A のコンテキストで 2 回コンパイルすると衝突が発生します。
objcopy を使用して一意のプレフィックスを与える複雑なソリューションを想像できますが、同じコードであるため、これはやや非効率的です。私はこれで生きていけるのですが、もっと良い方法はありますか?おそらく、ビルドフォルダーに既存のシンボルが存在する場合は、再度コンパイルするのではなく、それを再利用するためのコンパイラーまたはリンカーフラグですか?
アドバイスをありがとう。