2011-10-06 60 views
1

我有3个预建的静态库,我想在我的共享库中使用。android-ndk - 使用预建的静态库链接对方

问题是当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) 

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

回答

11

我的上帝,它非常简单。 为了同样的问题任何的你,怎么继承人我解决它:

使用

LOCAL_STATIC_LIBRARIES := tinyHTTP tinyNET tinySAK 

意思,一个最依赖第一相反的

LOCAL_STATIC_LIBRARIES := tinySAK tinyNET tinyHTTP