xcode4.3.2でApple Mach-O Linker (Id) Errorが起きた
xcode4.3.2でプロジェクトにファイルをコピーしたら、
Apple Mach-O Linker (Id) Errorが発生した。
エラー内容はこんな感じ。
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CoreDataManager", referenced from:
objc-class-ref in YarukotoViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
原因
追加したファイルがコンパイル対象に自動で含まれなくなっていた。というかコピー時に「ターゲット」にチェックするのを忘れただけだった。
以下の様にしたら解決しました。
コンパイルさせたいファイルを選ぶ
他の原因
・ファイル名が重複している場合にも同様のエラー文がでたり。・必要なフレームワークが追加されていなかったり。参考:プロジェクトにフレームワークをリンクする。
・Xcode5で外部ライブラリ追加時にheaderSearchPathに余分な"\" が自動で挿入されるバグがある
・GoogleAnalytics_for_iOS_V3はAdSupport.frameworkとlibGoogleAnalyticsServices.aが必要だったり。
・.hファイルでなくて.mファイルをimportしてしまうとDuplicate symbol _OBJC_IVARのエラーになる