2012-04-17 15 views
5

ライブラリはバイナリライブラリとのリンク領域にあり、ヘッダファイルも含まれていますが、このエラーが発生します。スタティックiOSライブラリはデバイス用にビルドされますが、シミュレータ用には作成されません

Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_TestLibraryEric", referenced from: 
     objc-class-ref in AppDelegate.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

私はシミュレータ用にビルドするとこのエラーが発生しますが、デバイス用ではありません。私はこの疑問を逆の方法で見てきました。そこではシミュレータ用に構築されていますが、デバイス用ではありません。アクティブなアーキテクチャのためのビルドはNOに設定されています。

答えて

5

エラーは、TestLibraryEricが(ARMアーキテクチャ用にコンパイルされた)デバイス用にのみ作成され、シミュレータ用には作成されないことを意味します(i386アーキテクチャ)。

作成したライブラリの場合は、ビルド設定を変更する必要があります。

Supported Platformsフィールドには、iphoneosが必要です。

iphonesimulatorを追加すると、ライブラリはデバイスとシミュレータ用に作成されます。

きれいにして、ライブラリを再構築してください。トリックが必要です。

関連する問題