android-ndk - использование готовых статических библиотек, которые связывают друг с другом - PullRequest
1 голос
/ 06 октября 2011

У меня есть 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)

Что мне сделать, чтобы это исправить?

1 Ответ

11 голосов
/ 06 октября 2011

Боже мой, это было так просто. Для любого из вас с той же проблемой, вот как я решил:

Вместо

LOCAL_STATIC_LIBRARIES := tinySAK tinyNET tinyHTTP

Использование

LOCAL_STATIC_LIBRARIES := tinyHTTP tinyNET tinySAK

Имеется в виду, тот, у кого больше зависимостей, в первую очередь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...