NDK链接静态文件产生的问题

star19678051 2013-02-26 04:27:16
我写了个mk文件,里面要链接3个静态文件,但总是报undefine的错误,报错的函数就是静态库里面的函数,那么就表示我链接不成功了。求高手帮我解答一下!mk文件如下:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := LIB2
LOCAL_SRC_FILES := libMyGUIEngine.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := LIB3
LOCAL_SRC_FILES := libCommon.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := LIB4
LOCAL_SRC_FILES := libMyGUI_OpenGLESPlatformAndoird.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := game_logic_static

LOCAL_MODULE_FILENAME := libgame_logic

LOCAL_LDLIBS := -llog

LOCAL_C_INCLUDES := E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include

LOCAL_SRC_FILES := AppDelegate.cpp \
HelloWorldScene.cpp \
BaseManager.cpp \

LOCAL_STATIC_LIBRARIES := LIB2 LIB3 LIB4
#LOCAL_STATIC_LIBRARIES += png_static_prebuilt
#LOCAL_STATIC_LIBRARIES += xml2_static_prebuilt
#LOCAL_STATIC_LIBRARIES += jpeg_static_prebuilt

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static

LOCAL_SHARED_LIBRARIES := cocosdenshion_shared

LOCAL_CPPFLAGS += -fexceptions

include $(BUILD_STATIC_LIBRARY)

$(call import-module,cocos2dx/platform/third_party/android/modules/libpng)
$(call import-module,cocos2dx/platform/third_party/android/modules/libxml2)
$(call import-module,cocos2dx/platform/third_party/android/modules/libjpeg)

部分报错如下:
./obj/local/armeabi/libgame_logic.a(HelloWorldScene.o): In function `HelloWorld::init()':
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/HelloWorldScene.cpp:95: undefined reference to `MyGUI::LayoutManager::loadLayout(std::string const&, std::string const&, MyGUI::Widget*)'
./obj/local/armeabi/libgame_logic.a(HelloWorldScene.o): In function `HelloWorld::draw()':
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/HelloWorldScene.cpp:118: undefined reference to `YingZheng::COpenGLESPlatform::getRenderManager()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/HelloWorldScene.cpp:118: undefined reference to `YingZheng::COpenGLESRenderManager::drawOneFrame()'
./obj/local/armeabi/libgame_logic.a(HelloWorldScene.o): In function `MyGUI::Singleton<MyGUI::LayoutManager>::getInstance()':
E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include/MyGUI_Singleton.h:55: undefined reference to `MyGUI::LogManager::getInstance()'
E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include/MyGUI_Singleton.h:55: undefined reference to `MyGUI::LogManager::log(std::string const&, MyGUI::LogLevel, std::string const&, char const*, int)'
E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include/MyGUI_Singleton.h:55: undefined reference to `MyGUI::Exception::Exception(std::string const&, std::string const&, char const*, long)'
E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include/MyGUI_Singleton.h:57: undefined reference to `typeinfo for MyGUI::Exception'
E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include/MyGUI_Singleton.h:57: undefined reference to `MyGUI::Exception::~Exception()'
./obj/local/armeabi/libgame_logic.a(HelloWorldScene.o): In function `MyGUI::Singleton<MyGUI::LayoutManager>::getInstancePtr()':
E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include/MyGUI_Singleton.h:62: undefined reference to `MyGUI::Singleton<MyGUI::LayoutManager>::msInstance'
./obj/local/armeabi/libgame_logic.a(HelloWorldScene.o): In function `MyGUI::Singleton<MyGUI::LayoutManager>::getClassTypeName()':
E:/MyGUI/MyGUI_3.2.0/MyGUIEngine/include/MyGUI_Singleton.h:67: undefined reference to `MyGUI::Singleton<MyGUI::LayoutManager>::mClassTypeName'
./obj/local/armeabi/libgame_logic.a(BaseManager.o): In function `CBaseManager::MyGUIInit()':
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:23: undefined reference to `YingZheng::COpenGLESPlatform::COpenGLESPlatform()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:24: undefined reference to `YingZheng::COpenGLESPlatform::initialize(YingZheng::COpenGLESImageLoader*)'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:26: undefined reference to `YingZheng::COpenGLESPlatform::getRenderManager()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:26: undefined reference to `YingZheng::COpenGLESRenderManager::setViewSize(int, int)'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:27: undefined reference to `MyGUI::Gui::Gui()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:28: undefined reference to `MyGUI::Gui::initialise(std::string const&)'
./obj/local/armeabi/libgame_logic.a(BaseManager.o): In function `CBaseManager::setupResources()':
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:33: undefined reference to `MyGUI::xml::Document::Document()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:35: undefined reference to `MyGUI::xml::Document::open(std::string const&)'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:36: undefined reference to `MyGUI::xml::Document::getLastError()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:38: undefined reference to `MyGUI::xml::Document::getRoot() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:39: undefined reference to `MyGUI::xml::Element::getName() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:41: undefined reference to `MyGUI::xml::Element::getElementEnumerator()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:43: undefined reference to `MyGUI::xml::ElementEnumerator::operator->() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:43: undefined reference to `MyGUI::xml::Element::getName() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:46: undefined reference to `MyGUI::xml::ElementEnumerator::operator->() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:46: undefined reference to `MyGUI::xml::Element::findAttribute(std::string const&)'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:48: undefined reference to `MyGUI::xml::ElementEnumerator::operator->() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:48: undefined reference to `MyGUI::xml::Element::findAttribute(std::string const&)'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:50: undefined reference to `MyGUI::xml::ElementEnumerator::operator->() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:50: undefined reference to `MyGUI::xml::Element::getContent() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:52: undefined reference to `MyGUI::xml::ElementEnumerator::operator->() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:52: undefined reference to `MyGUI::xml::Element::getContent() const'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:42: undefined reference to `MyGUI::xml::ElementEnumerator::next()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:56: undefined reference to `MyGUI::xml::Document::~Document()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:56: undefined reference to `MyGUI::xml::Document::~Document()'
./obj/local/armeabi/libgame_logic.a(BaseManager.o): In function `CBaseManager::addResourceLocation(std::string const&, bool)':
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:61: undefined reference to `YingZheng::COpenGLESPlatform::getDataManager()'
E:\sdstar\cocos2d-1.0.1-x-0.12.0\testMyGUI_android\android/jni/../../Classes/BaseManager.cpp:61: undefined reference to `YingZheng::COpenGLESDataManager::addResourceLocation(std::string const&, bool)'
collect2: ld returned 1 exit status
/cygdrive/e/sdstar/android-ndk-r8-windows/android-ndk-r8/build/core/build-binary.mk:369: recipe for target `obj/local/armeabi/libgame.so' failed
make: *** [obj/local/armeabi/libgame.so] Error 1
...全文
254 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
欢乐马_19e9 2013-08-20
  • 打赏
  • 举报
回复
没有包含文件,
LOCAL_SRC_FILES := 你的代码文件
_大象无形_ 2013-03-29
  • 打赏
  • 举报
回复
你现在解决了吗?我也遇到这个问题了,如果你解决了,望交流一下
doveqian 2013-03-01
  • 打赏
  • 举报
回复
引用 4 楼 star19678051 的回复:
引用 3 楼 doveqian 的回复:你下面的 include $(CLEAR_VARS) LOCAL_MODULE := game_logic_static LOCAL_MODULE_FILENAME := libgame_logic 写错了吧 不关这个事呢
哦,我发现你的写法跟我的不一样
doveqian 2013-02-28
  • 打赏
  • 举报
回复
你下面的 include $(CLEAR_VARS) LOCAL_MODULE := game_logic_static LOCAL_MODULE_FILENAME := libgame_logic 写错了吧
star19678051 2013-02-28
  • 打赏
  • 举报
回复
引用 3 楼 doveqian 的回复:
你下面的 include $(CLEAR_VARS) LOCAL_MODULE := game_logic_static LOCAL_MODULE_FILENAME := libgame_logic 写错了吧
不关这个事呢
star19678051 2013-02-27
  • 打赏
  • 举报
回复
求解答!顶起

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧