0

プラグインを使用するアプリを作成しました。すべて問題ありません。Xcode のバンドル テンプレートを使用してプラグインを作成しました。

ここで、別のプラグインに依存するプラグインを作成する必要があります。たとえば、プラグイン A がプラグイン B に依存しているとします。

プラグイン A をプロジェクトに追加してプラグイン B とリンクしようとしましたが (バイナリをライブラリにリンク)、うまくいきません (完全なバンドルとバンドル内のプラグイン オブジェクト ファイルを使用してみました)。

現時点で私が見つけた唯一の方法は、プラグイン B のソース ファイルをプラグイン A に追加することですが、アプリケーションではプラグイン A と B の両方に同じコードが含まれているため (クラス X は Y と Z の両方に実装されています。この 2 つが使用されます (どちらが未定義か)。

どうすればそれを実装できますか? ありがとうございました

4

1 に答える 1

0

わかりました、それを達成する方法を見つけました。

必要なクラスのヘッダーをコピーまたは参照してから、次の形式で -U リンカー フラグ ([その他のリンカー フラグ] オプションで) を使用します。

-Wl,-U -Wl,_OBJC_CLASS_$_NameOfTheClass

(Wl オプションが必要です。理由はこちらをご覧ください: http://www.cocoabuilder.com/archive/xcode/264371-ld-undefined-symbols-argument-is-ignored.html )

クラスの -U フラグを使用すると、クラスの定義なしでコンパイルできます。

これにより、依存するプラグインのコードを複製することなく、プラグインをコンパイルできます。

于 2013-05-29T17:43:20.443 に答える