将cocos2d-x win32项目移植到Android时出错
error porting cocos2d-x win32 project to Android?
我在cocos2d-x win32项目上工作了很长时间。新的我想把我的项目移植到Android项目。我将proj.android
导入Eclipse并解决了一些错误。不幸的是,我不小心删除了project properties>C/C++ general>Paths and Symbols>Includes
下的一些includes
。现在我遇到了这个错误。我该怎么解决呢?我使用的是cocos2d-x2.1.5和Android NDK r8e。
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: ./obj/local/armeabi/libcocos2d.a: member at 8799706 is not an ELF object
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/liblua.a(LuaCocos2d.o): in function tolua_Cocos2d_CCEGLViewProtocol_getScaleY00(lua_State*):D:graduation_projectcocos2d-x-2.1.5/scripting/lua/proj.android/../cocos2dx_support/LuaCocos2d.cpp:8905: error: undefined reference to 'cocos2d::CCEGLViewProtocol::getScaleY() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/liblua.a(LuaCocos2d.o): in function tolua_Cocos2d_CCEGLViewProtocol_getScaleX00(lua_State*):D:graduation_projectcocos2d-x-2.1.5/scripting/lua/proj.android/../cocos2dx_support/LuaCocos2d.cpp:8873: error: undefined reference to 'cocos2d::CCEGLViewProtocol::getScaleX() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/liblua.a(LuaCocos2d.o): in function tolua_Cocos2d_CCEGLViewProtocol_getViewPortRect00(lua_State*):D:graduation_projectcocos2d-x-2.1.5/scripting/lua/proj.android/../cocos2dx_support/LuaCocos2d.cpp:8841: error: undefined reference to 'cocos2d::CCEGLViewProtocol::getViewPortRect() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libextension.a(CCScrollView.o): in function .LTHUNK25:D:graduation_projectcocos2d-x-2.1.5/extensions/GUI/CCScrollView/CCScrollView.cpp:38: error: undefined reference to 'cocos2d::CCEGLViewProtocol::getScaleX() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libextension.a(CCScrollView.o): in function .LTHUNK25:D:graduation_projectcocos2d-x-2.1.5/extensions/GUI/CCScrollView/CCScrollView.cpp:38: error: undefined reference to 'cocos2d::CCEGLViewProtocol::getScaleY() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function cocos2d::CCEGLView::~CCEGLView():D:graduation_projectcocos2d-x-2.1.5/cocos2dx/platform/android/CCEGLView.cpp:66: error: undefined reference to 'cocos2d::CCEGLViewProtocol::~CCEGLViewProtocol()'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function cocos2d::CCEGLView::CCEGLView():D:graduation_projectcocos2d-x-2.1.5/cocos2dx/platform/android/CCEGLView.cpp:58: error: undefined reference to 'cocos2d::CCEGLViewProtocol::CCEGLViewProtocol()'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function typeinfo for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x8): error: undefined reference to 'typeinfo for cocos2d::CCEGLViewProtocol'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x30): error: undefined reference to 'cocos2d::CCEGLViewProtocol::getFrameSize() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x34): error: undefined reference to 'cocos2d::CCEGLViewProtocol::setFrameSize(float, float)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x38): error: undefined reference to 'cocos2d::CCEGLViewProtocol::getVisibleSize() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x3c): error: undefined reference to 'cocos2d::CCEGLViewProtocol::getVisibleOrigin() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x40): error: undefined reference to 'cocos2d::CCEGLViewProtocol::setDesignResolutionSize(float, float, ResolutionPolicy)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x44): error: undefined reference to 'cocos2d::CCEGLViewProtocol::getDesignResolutionSize() const'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x48): error: undefined reference to 'cocos2d::CCEGLViewProtocol::setTouchDelegate(cocos2d::EGLTouchDelegate*)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x4c): error: undefined reference to 'cocos2d::CCEGLViewProtocol::setViewPortInPoints(float, float, float, float)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x50): error: undefined reference to 'cocos2d::CCEGLViewProtocol::setScissorInPoints(float, float, float, float)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x54): error: undefined reference to 'cocos2d::CCEGLViewProtocol::isScissorEnabled()'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x58): error: undefined reference to 'cocos2d::CCEGLViewProtocol::getScissorRect()'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x5c): error: undefined reference to 'cocos2d::CCEGLViewProtocol::setViewName(char const*)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x60): error: undefined reference to 'cocos2d::CCEGLViewProtocol::handleTouchesBegin(int, int*, float*, float*)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x64): error: undefined reference to 'cocos2d::CCEGLViewProtocol::handleTouchesMove(int, int*, float*, float*)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x68): error: undefined reference to 'cocos2d::CCEGLViewProtocol::handleTouchesEnd(int, int*, float*, float*)'
D:/graduation_project/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/libcocos2d.a(CCEGLView.o): in function vtable for cocos2d::CCEGLView:CCEGLView.cpp(.data.rel.ro+0x6c): error: undefined reference to 'cocos2d::CCEGLViewProtocol::handleTouchesCancel(int, int*, float*, float*)'
collect2: ld returned 1 exit status
make: *** [obj/local/armeabi/libcocos2dcpp.so] Error 1
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := cocos2dcpp_shared
LOCAL_MODULE_FILENAME := libcocos2dcpp
LOCAL_SRC_FILES := hellocpp/main.cpp
../../Classes/sqlite3.c
../../Classes/AppDelegate.cpp
../../Classes/BackgroundLayer.cpp
../../Classes/Bujian.cpp
../../Classes/Character.cpp
../../Classes/HanziManage.cpp
../../Classes/HcharacterDrawnode.cpp
../../Classes/HcharacterLayer.cpp
../../Classes/HclcData.cpp
../../Classes/JudgeManager.cpp
../../Classes/LianxiScene.cpp
../../Classes/LuaScriptReader.cpp
../../Classes/PopLayer.cpp
../../Classes/ReadXML.cpp
../../Classes/Splash.cpp
../../Classes/Stroke.cpp
../../Classes/StrokeDrawnode.cpp
../../Classes/StrokeNode.cpp
../../Classes/TcharacterDrawnode.cpp
../../Classes/TcharacterLayer.cpp
../../Classes/Tianzige.cpp
../../Classes/TouchLayer.cpp
../../Classes/WallScene.cpp
../../Classes/tinystr.cpp
../../Classes/tinyxml.cpp
../../Classes/tinyxmlerror.cpp
../../Classes/tinyxmlparser.cpp
../../Classes/MoveToRightPlaceInterval.cpp
../../Classes/SqliteHelper.cpp
../../Classes/CharacterEntity.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
LOCAL_WHOLE_STATIC_LIBRARIES += luajit_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_lua_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)
$(call import-module,scripting/lua/proj.android)
应用程序.mk
APP_STL := stlport_static
APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1
APP_CFLAGS += -Wno-error=format-security
error: undefined reference to
可能是由于Android.mk
中包含不正确
我相信你在包括静态库的行中犯了语法错误:
LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
应该是:
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用ndk-build.cmd构建Android.so文件
- 访问者访问变体并返回不同类型时出错
- 在Linux for Windows上编译C++代码时出错
- 读取文件的最后一行并输入到链接列表时出错
- 重载操作程序时出错>>用于类中的字符串 memebr
- 调用专用模板时出错"no matching function for call to [...]"
- Android NDK传感器向事件队列报告奇怪的间隔
- 将项目导入 Android Studio 后出错
- std::stoul 在带有 NDK r13b 的 Android 版 Qt 应用程序上出错
- 在android ndk上运行pjsip示例pjsua时出错
- CMake(Android工具链)-运行链接命令时出错:没有这样的文件或目录
- 使用ANDROID NDK编译时出错
- 在Visual Studio 2015中生成默认的Native Activity Android项目时出错
- 在自建android中包含C++共享库.启动ndk生成时出错
- android AppDelegate链接时出错
- 链接c++静态库与android ndk时出错(错误:无法识别文件格式)
- 使用android-ndk-r10e编译jni代码时出错
- 将cocos2d-x win32项目移植到Android时出错
- 在Visual Studio中创建新的本机应用程序(Android)出错