3

私はいくつかの iOS プロジェクトに取り組んでおり、かなりの量の共有コードが含まれているため、そのコードを静的ライブラリに集めています。

ここで、私が使用している 3 つの静的ライブラリがあるとします。

  1. Lib A には一般的なユーティリティ関数が含まれています
  2. Lib B には 1 セットのクラスが含まれています
  3. Lib C には 2 番目のクラスのセットが含まれています

(そして A は B と C の両方の依存関係です)

さて、私の最後のプロジェクトでは、3 つのライブラリすべての機能を利用する必要があります。A を B、C、および最終プロジェクトと静的にリンクできることはわかっていますが、その時点で、同じクラスの複数の実装があるため、リンカー エラーが発生します。

このような状況はどのように処理されるべきですか?

4

1 に答える 1

6

これについて疑問に思っている他の人のために、各ライブラリにヘッダーファイルを含め、1 つだけにリンクすることで、私が望む動作を得ることができることを発見しました。

質問で概説した例では、私のプライマリ プロジェクトは A、B、および C に対してリンクします。ただし、ライブラリ B および C で A を使用するには、A のヘッダー ファイルを B および C に含めることができますが、リンク先は A のみです。ルート プロジェクトの A。

誰かがより良い提案を持っている場合は、お気軽に共有してください。

余談ですが、iOS 依存関係マネージャーであるCocoapodsというプロジェクトがあります。注目してみる価値がありそうです。

于 2012-05-16T15:22:21.550 に答える