私は現在、非常に大きなコード ベース用の 1 つの Xcode プロジェクトを持っています。これをProject Xと呼びます。これを一連のサブ プロジェクト ( Project A、B、C )に分割しています。
これまでのところ、これらのプロジェクトはそれぞれ、単独で問題なくコンパイルされます。それらはすべて静的ライブラリを生成します。プロジェクト Bとプロジェクト Cは、ビルドするためにプロジェクト Aによって生成された静的ライブラリに依存しています。
Project B および Cによって生成された静的ライブラリを必要とする別の xcode プロジェクトProject Zがあります。ここに問題があります。プロジェクト Zがリンカ フェーズに入ると、事態は一変します。プロジェクト A で最初にリンクされたコードのプロジェクト B と C のライブラリ内で、重複したシンボルが見つかりました。
私は静的ライブラリの世界にかなり慣れていないため、Project Zを進める方法や、同じProject Aライブラリにリンクするように他のプロジェクトを変更する方法がわかりません。ありえない感じです。ここでのオプションは何ですか?
編集:
一部のクライアントはどちらか一方のみを必要とするため、プロジェクト Bとプロジェクト Cは別々の静的ライブラリにビルドする必要があることを明確にする必要があります。
また、OSX プラットフォームと iOS プラットフォームの両方でこのジレンマを抱えています。
プロジェクトを動的ライブラリとして構築することで、OSX でこの問題を解決できることを認識しています。ただし、これを実行したくないのですが、iOS でも同じ問題が発生します。