0

Kobold2d プロジェクト内で SmartfoxServer フレームワークを使用しようとすると、次のエラーが発生します。

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CCAsyncObject", referenced from:
objc-class-ref in libcocos2d-extensions-ios.a(CCTextureCache+CCBigImageExtensions.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 

これは-ObjC、SmartfoxServer フレームワークで定義されているカテゴリをロードするためにリンカー フラグを含める必要があるためです。ここでカテゴリを含む静的ライブラリを強制的にリンクする必要があることについては既に読みましたが、SmartFoxServer-Framework は静的ライブラリではありません。

-ObjCフレームワークを強制的にロードして、リンカー フラグを使用せずにすべてのカテゴリを含める方法はありますか? または、フレームワークを静的ライブラリに変換する便利な方法はありますか? どんな助けでも大歓迎です!

4

1 に答える 1

4

CCBigImage を使用していない限り、CCTextureCache+CCBigImageExtensions.h および .m ファイルをターゲットから選択解除できます。

Kobold2D-Libraries プロジェクトを開き、グループ /Extensions/CCBigImage を参照します。メニューから [表示] -> [ユーティリティ] -> [ファイル インスペクタ] を選択します。各ファイルを選択し、File Inspector で対象のチェックボックスをオフにします。これで、この特定のクラスはコンパイルされなくなり、エラーはなくなりました。

問題は、このカテゴリが実装ファイルでのみ定義されているプラ​​イベート クラスを使用していることです。残念ながら、cocos2d-iphone-extensions プロジェクト全体を強制的にロードすることは解決策ではありません。これにより、他のエラーが発生するからです。

于 2012-07-20T12:06:07.153 に答える