jni/../../Classes/AppDelegate.cpp:102: error: undefined reference to 'TestController::TestC...
2014-12-29 10:23
555 查看
转自:http://www.tuicool.com/articles/JfeYbm
<1>错误信息:
[armeabi] SharedLibrary : libcocos2dcpp.so
E:/Android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/AppDelegate.o:
in function AppDelegate::applicationDidFinishLaunching():jni/../../Classes/AppDelegate.cpp:102: error: undefined reference to 'TestController::TestController()'
collect2: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
<2>解决方案
解决问题的方法就是,在Android.mk中:
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
在后面加上要编译的.cpp文件文件:
如果cpp文件太多,加起来就会很麻烦,于是我在网上找到了一种更好的解决方案:
使用下面的Android.mk文件, 什么都不用加,就OK了,不管里面有.cpp文件多少编译了 。
<1>错误信息:
[armeabi] SharedLibrary : libcocos2dcpp.so
E:/Android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/AppDelegate.o:
in function AppDelegate::applicationDidFinishLaunching():jni/../../Classes/AppDelegate.cpp:102: error: undefined reference to 'TestController::TestController()'
collect2: ld returned 1 exit status
make.exe: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
<2>解决方案
解决问题的方法就是,在Android.mk中:
LOCAL_SRC_FILES := hellocpp/main.cpp \
../../Classes/AppDelegate.cpp \
../../Classes/HelloWorldScene.cpp \
在后面加上要编译的.cpp文件文件:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := cocos2dcpp_shared LOCAL_MODULE_FILENAME := libcocos2dcpp LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/controller.cpp \ ../../Classes/HelloWorldScene.cpp \ ../../Classes/testBasic.cpp \ ../../Classes/VisibleRect.cpp \ ../../Classes/ActionEaseTest/ActionEaseTest.cpp \ ../../Classes/ActionTest/ActionTest.cpp \ ../../Classes/ClickAndMoveTest/ClickAndMoveTest.cpp \ ../../Classes/NodeTest/NodeTest.cpp \ ../../Classes/TransitionsTest/TransitionsTest.cpp \ LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static include $(BUILD_SHARED_LIBRARY) $(call import-module,cocos2dx) $(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl) $(call import-module,CocosDenshion/android) $(call import-module,extensions) $(call import-module,external/Box2D) $(call import-module,external/chipmunk)
如果cpp文件太多,加起来就会很麻烦,于是我在网上找到了一种更好的解决方案:
使用下面的Android.mk文件, 什么都不用加,就OK了,不管里面有.cpp文件多少编译了 。
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := game_shared LOCAL_MODULE_FILENAME := libgame FILE_LIST := hellocpp/main.cpp FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static include $(BUILD_SHARED_LIBRARY) $(call import-module,CocosDenshion/android) \ $(call import-module,cocos2dx) \ $(call import-module,extensions)
相关文章推荐
- jni/../../Classes/AppDelegate.cpp:102: error: undefined reference to 'TestController::TestController
- jni/../../Classes/AppDelegate.cpp:29: error: undefined reference to
- jni/../../Classes/AppDelegate.cpp:29: error: undefined reference to 'StartLayer。而且没生成libgame.so文件
- jni/../../Classes/AppDelegate.cpp:29: error: undefined reference to 'StartLayer。而且没生成libgame.so文件
- android make debug : (.ARM.exidx+0x0): error: undefined reference to '__aeabi_unwind_cpp_pr1'
- gcc链接.cpp和.c文件生成的.o库文件的时候,Linking error "undefined reference to `__gxx_personality_v0'"
- cocos2d-x在目录..\Classes添加新类的cpp后,在Eclipse下进行混合编译提示”undefined reference to vtable for 新类“错误的解决方法
- Android Jni 编译 error: undefined reference to 错误
- Error:Execution failed for task ':app:clean'. > Unable to delete directory: E:\Work\Testjni\app\buil
- Android Studio JNI 报错 - error: undefined reference to 'AndroidBitmap_getInfo'
- test.cpp:(.text+0x66): undefined reference to `event_init'
- error: undefined reference to 'typeinfo for FileDialogDelegate'
- Error:ImageIOpng.cpp:(.text+0x5b9): undefined reference to `png_create_write_struct'等
- undefined reference to error解决方法
- register.o: undefined reference to symbol 'gpg_strerror'编译错误的解法
- FC14下错误 /usr/bin/ld: libvalhalla-test.o: undefined reference to symbol 'clock_gettime@@GLIBC_2.2'
- 连接时出错,(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
- Compiling Error: undefined reference to `dlsym'
- undefined reference to error解决方法
- Dev C++中的错误的解决[Linker error] undefined reference to `__dyn_tls_init_callback'