繁体   English   中英

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

[英]android-ndk - using prebuilt static libraries that links with each other

我已经在共享库中使用了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)

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

天哪,这是如此简单。 对于任何有相同问题的人,以下是我的解决方法:

代替

LOCAL_STATIC_LIBRARIES := tinySAK tinyNET tinyHTTP

采用

LOCAL_STATIC_LIBRARIES := tinyHTTP tinyNET tinySAK

意思是,依赖度最高的人优先。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM