2012-08-13 1 views
0

android cocos2d-x 프로젝트에서 build_native.sh를 실행하는 데 문제가 있습니다. 그것은 몇 가지 연결 문제로 밝혀졌습니다. 내가 만든 cpp 파일은 컴파일되지 않으므로 정의되지 않은 참조가됩니다.android.mk 파일이 없습니다. cocos2d-x 1.0.1-x-0.13.0-beta 폴더

SoybeanServer-2:android soybeansoft$ ./build_native.sh 
Using prebuilt externals 
make: Entering directory `/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android' 
SharedLibrary : libgame.so 
./obj/local/armeabi/objs/game_shared/__/__/Classes/AppDelegate.o: In function `AppDelegate::applicationDidFinishLaunching()': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/AppDelegate.cpp:111: undefined reference to `MainMenu::scene()' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `HelloWorld::okButtonCallback(cocos2d::CCObject*)': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:179: undefined reference to `Logic::select()' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `HelloWorld::newQuiz()': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:172: undefined reference to `Logic::getCurrentQuiz()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:173: undefined reference to `Logic::getCurrentQuiz()' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `HelloWorld::swipeRight()': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:151: undefined reference to `Logic::nextImage()' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `HelloWorld::swipeLeft()': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:145: undefined reference to `Logic::previousImage()' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `~HelloWorld': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:16: undefined reference to `Logic::unregisterEventHandler()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:30: undefined reference to `LogicEvent::~LogicEvent()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:16: undefined reference to `Logic::unregisterEventHandler()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:30: undefined reference to `LogicEvent::~LogicEvent()' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `HelloWorld': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:9: undefined reference to `Logic::Logic()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:9: undefined reference to `Logic::Logic()' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `HelloWorld::imageChanged()': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:161: undefined reference to `Logic::getCurrentImage()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:162: undefined reference to `MemeImage::setImage(char const*)' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o: In function `HelloWorld::init()': 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:83: undefined reference to `MemeImage::MemeImage()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:90: undefined reference to `Logic::init(float)' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:91: undefined reference to `Logic::registerEventHandler(LogicEvent*)' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:93: undefined reference to `Logic::getCurrentQuiz()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:94: undefined reference to `Logic::getCurrentQuiz()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:96: undefined reference to `Logic::getCurrentQuiz()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:102: undefined reference to `Logic::getCurrentImage()' 
/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android/jni/../../Classes/HelloWorldScene.cpp:103: undefined reference to `MemeImage::setImage(char const*)' 
./obj/local/armeabi/objs/game_shared/__/__/Classes/HelloWorldScene.o:(.data.rel.ro+0x1d0): undefined reference to `typeinfo for LogicEvent' 
collect2: ld returned 1 exit status 
make: *** [obj/local/armeabi/libgame.so] Error 1 
make: Leaving directory `/Users/soybeansoft/devs/cocos2d-x_1.0/MemeQuiz/android' 
SoybeanServer-2:android soybeansoft$ 

어떤 사람들은 내가 내가 클래스 폴더에 Android.mk 파일에 생성 된 모든 CPP 파일을 나열 할 필요가 있다고 :

여기에 오류가 있습니다. 그러나 Classes 폴더를 살펴본 후에 Android.mk가 없습니다. .cpp 파일을 지금 어떻게 나열해야합니까?

업데이트 :

내가 JNI 폴더에 android.mk 파일이 있다는 것을 알고있다. 하지만 거기에 내 모든 게임 cpp 파일을 나열하더라도 cpp는 여전히 build_native 프로세스에서 컴파일되지 않습니다. 그래서 난 정말 내 cpp 파일을 나열하는 방법을 모르겠다.

+0

문제점을 발견했습니다! 일종의 가져 오기 오류입니다. 좋은 사건은 닫혔다 – Fugogugo

답변

0

android.mk 파일은 Eclipse 프로젝트의 jni 폴더에 있습니다. 저기 봐.

+0

예 나는 거기에 하나 있다는 것을 알고있다. 하지만 거기에 내 모든 게임 파일 cpp를 나열하더라도 cpp 파일은 여전히 ​​컴파일되지 않습니다. – Fugogugo

+0

cpp 파일의 경로를 포함해야 할 수도 있습니다. 예를 들어 ../../Classes/Whatever.cpp –

+0

그래, 다른 비슷한 문제에 직면 해 있습니다. 실제로 클래스를 추가하지는 않지만 코드를 수정하고 있습니다. 수업에서. 변경 사항이 적용되지 않고이 프로젝트를 가져온 후 jni 폴더의 main.cpp에 오류가 표시됩니다. –

관련 문제