1

私は、Quartz Composerのいくつかのプラグインに取り組んでいます。これらはすべて、bundles frameworks フォルダー内のそれぞれにコピーされた同じカスタム スタティック ライブラリにリンクしています。プラグインは個別に使用できるため、プラグインごとにライブラリを配布する必要があります。

isMemberOfClassおよびisKindOfClassメソッドを除いて、すべてがうまくいきます。ここで、同じクラスを 2 回インポートすると問題が発生する可能性があること を読みました。

コンパイル時にエラーはありません。

lib XCode プロジェクトを含む 2 つのプラグイン (NSBundles) があり、リンクする前にコンパイルするとします。どちらもリソースフォルダーにライブラリをコピーします。次に、両者はそのライブラリからカスタムhOzPolygon2Dクラスをインスタンス化します。

最初のプラグインは、 isMemberOfClass メソッドによるhOzPolygon2Dオブジェクトのテストに true を返します。2 番目は false を返します。isKindOfCLass メソッドは同じ「エラー」を返します。

私の場合、解決策を想像できません。私は本当にコンパイルの専門家ではないので、助けていただければ幸いです。

4

1 に答える 1

0

スタティック ライブラリは個別に (おそらく独自のフレームワークとして) 配布する必要があります。質問のタイトルから、リンカーから重複したシンボル エラーが表示されていると思います。同じ静的ライブラリを他の複数のライブラリに静的にリンクしてから、アプリケーションをそれらのライブラリの複数にリンクしようとすると、これらの重複シンボルの問題が発生することになります。フレームワークでこれを実際に試したことはありませんが、相互依存する静的ライブラリに対して iOS アプリをリンクすることから、この問題を知っています。

モジュールを個別に使用できるという事実について心配する必要はありません。ユーザーが基本ライブラリも取得できることを確認してください。これは正常な状況です。たとえば、AppKit と UIKit は Foundation に依存していますが、どちらも実際には Foundation のコピーを含んでいません。

于 2013-03-16T00:52:01.337 に答える