【问题标题】:android-ndk - using prebuilt static libraries that links with each otherandroid-ndk - 使用相互链接的预构建静态库
【发布时间】:2011-10-06 09:24:53
【问题描述】:

我有 3 个预构建的静态库要在我的共享库中使用。

问题是当ndk-build 尝试链接到静态库时,我收到大量未定义的引用。 “未定义的引用”源于静态库尝试调用另一个静态库中的方法。例如,tinyNET 调用 tinySAK 中的方法。依赖项是这样的: tinySAK 没有依赖项 tinyNET 依赖于 tinySAK, tinyHTTP 依赖于 tinyNET 和 tinySAK

这是我的 Android.mk 的样子:

LOCAL_PATH := $(call my-dir)

# TINYSAK
include $(CLEAR_VARS)

LOCAL_MODULE    := tinySAK
LOCAL_SRC_FILES := libtinySAK_armv7-a.a

include $(PREBUILT_STATIC_LIBRARY)


# TINYNET
include $(CLEAR_VARS)

LOCAL_MODULE    := tinyNET
LOCAL_SRC_FILES := libtinyNET_armv7-a.a

include $(PREBUILT_STATIC_LIBRARY)



# TINYHTTP
include $(CLEAR_VARS)

LOCAL_MODULE    := tinyHTTP
LOCAL_SRC_FILES := libtinyHTTP_armv7-a.a

include $(PREBUILT_STATIC_LIBRARY)





include $(CLEAR_VARS)

LOCAL_MODULE    := libtest

LOCAL_SRC_FILES := \
/../../testclient.cpp \
/../../main.cpp \
/../../Webservice.cpp 

LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../includes/ \
$(LOCAL_PATH)/../../../doubango/tinyHTTP/include/ \
$(LOCAL_PATH)/../../../doubango/tinySAK/src/ \
$(LOCAL_PATH)/../../../doubango/tinyNET/src/ 

LOCAL_STATIC_LIBRARIES := tinySAK tinyNET tinyHTTP

include $(BUILD_SHARED_LIBRARY)

我应该怎么做才能解决这个问题?

【问题讨论】:

    标签: android makefile android-ndk


    【解决方案1】:

    天哪,原来如此简单。 对于遇到同样问题的任何人,这是我的解决方法:

    代替

    LOCAL_STATIC_LIBRARIES := tinySAK tinyNET tinyHTTP
    

    使用

    LOCAL_STATIC_LIBRARIES := tinyHTTP tinyNET tinySAK
    

    意思是,依赖最多的第一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      相关资源
      最近更新 更多