android-ndk - 使用相互链接的预构建静态库

Kai*_*aan 1 android makefile android-ndk

我有3个预构建的静态库,我想在我的共享库中使用.

问题是当ndk-build尝试链接到静态库时,我得到了大量未定义的引用.'undefined references'源自静态库尝试在另一个静态库中调用方法时.例如,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)
Run Code Online (Sandbox Code Playgroud)

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

Kai*_*aan 11

我的天啊,这很简单.对于任何有同样问题的人,我是如何解决的:

代替

LOCAL_STATIC_LIBRARIES := tinySAK tinyNET tinyHTTP
Run Code Online (Sandbox Code Playgroud)

使用

LOCAL_STATIC_LIBRARIES := tinyHTTP tinyNET tinySAK
Run Code Online (Sandbox Code Playgroud)

意思是,首先具有最多依赖性的那个.