エラーの例:
Undefined symbols for architecture i386:
"someVar", referenced from:
- [SomeClass someMethod:] in SomeClass.o
ld:
symbol(s) not found for architecture i386
clang: error: linker command failed with code 1 .....
リンク時にシンボルが見つからない場合に発生します。
(1).hはimportしたが、frameworkをリンク対象に追加していないときに発生します。.hをimportすることでシンボルが解決されコンパイルは通りますが、ライブラリがないとリンクできず、エラーとなります。
PROJECT > Build Phase > Link Binary With Librariesでframeworkを追加します。
(2)インクリメンタル・コンパイルのため、変更のないソースはコンパイルされません。そのソースが参照する変数などが削除されると、コンパイル済みの.oをリンクするときに参照先がなく、エラーとなります。いったんcleanし、全ソースを再ビルドすると解消します。
0 件のコメント:
コメントを投稿