[cocos2dx][Xcode][C++] Undefined symbols for architecture i386 とか linker command failed with exit code 1 でエラー
cocos2dx で、タップを検知したいと思い、ヘッダーファイルに下記の記述を行いました。
// タッチ開始時 virtual bool onTouchBegan(cocos2d::Touch* pTouch, cocos2d::Event* pEvent);
しかしビルドすると
というエラー。。。
エラー内容でぐぐってみると、
プログラミング雑記: Undefined symbols for architecture i386
Cocos2dxで"Undefined symbols for architecture i386:"が発生した場合の対処法 - たけぞうBLOG
「clang: error: linker command failed with exit code 1」というエラーへの対処 - Action Script書きの日記
Cocoaの日々: ld: library not found for -lz.1.2.3 と出たら
Xcode4.4にアップデートしたら「linker command failed with exit code 1」エラー?! | 個人で作るiPhoneアプリ制作体験記
とかとか、いろいろ見つかったけどぜんぜん解決せず。
結局、ヘッダーファイルに宣言をするだけではだめで、cpp ファイルにて定義まで行わないとエラーになるらしいです。下のように記述し、無事解決しました。
bool TouchTest::onTouchBegan(Touch* pTouch, Event* pEvent) { return true; }
C++ の関数のプロトタイプ宣言というものは、それを記述しただけではエラーになるっていうことなのかな??
初心者丸出し。ちくしょう。。(T-T)