自己満足なぶろーぐ

サルが自分用メモとしてつかってます。正しくないことばかり書いてると思う

【Cocos】undefined reference to init

【結論】

 クラスを作成したらLOCAL_SRC_FILESに記述すること。

 

CocosStudioを使ってAndroid端末にビルドするとこのような表示がされる

f:id:miya033:20160528182707j:plain

jni/../../Classes/HelloWorldScene.cpp:104: error: undefined reference to 'Test::createScene0()'
collect2.exe: error: ld returned 1 exit status

Test.cppが定義されてないことが原因らしい。               

 

 

【解決手順】

Android.mkを開いてください。

場所:プロジェクトのフォルダ>proj.android>jni>Android.mk

 

見つけたらAndroid.mkをメモ帳かなんかで開いて、LOCAL_SRC_FILESに作成したクラスを書く。

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp\
                   ../../Classes/ここに作成したクラスを書く.cpp  

 

例)記述するとこんな感じ

LOCAL_SRC_FILES := hellocpp/main.cpp \
                   ../../Classes/AppDelegate.cpp \
                   ../../Classes/HelloWorldScene.cpp\
                   ../../Classes/Test.cpp  ←作成したクラス

作業を終えたら次はCocosStudioでの操作になります。

 

LOCAL_SRC_FILESに書き加えたあとで、ビルドすると今度は無事にAndroid端末で実行できます。