android-ndk Добавление статических библиотек в android.mk - PullRequest
4 голосов
/ 05 октября 2011

У меня есть три статические библиотеки из фреймворка, которые я хочу использовать в своем проекте.Эти библиотеки называются libtinySAK_armv7-a.a, libtinyNET_armv7-a.a and libtinyHTTP_armv7-a.a.Я поместил их в ту же папку, что и Android.mk и Application.mk.

Мой нативный код зависит от них, поэтому я хочу включить их в свою общую библиотеку.

Из того, что я прочитал на stackoverflow и google'd, я считаю, что android.mk должен выглядеть примерно так:

# TINYSAK
include $(CLEAR_VARS)

LOCAL_MODULE    := tinySAK
LOCAL_SRC_FILES := libtinySAK_armv7-a.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../doubango/tinySAK/src/

include $(PREBUILT_STATIC_LIBRARY)


# TINYNET
include $(CLEAR_VARS)

LOCAL_MODULE    := tinyNET
LOCAL_SRC_FILES := libtinyNET_armv7-a.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../doubango/tinyNET/src/

include $(PREBUILT_STATIC_LIBRARY)


# TINYHTTP
include $(CLEAR_VARS)

LOCAL_MODULE    := tinyHTTP
LOCAL_SRC_FILES := libtinyHTTP_armv7-a.a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../doubango/tinyHTTP/include/

include $(PREBUILT_STATIC_LIBRARY)




LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := libtest

LOCAL_SRC_FILES := \
../../test/stack.cpp \
../../test/main.cpp 

LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../test/include/ \
$(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)

My Application.mk:

APP_STL := stlport_static
APP_ABI := armeabi-v7a

Ошибка, которую я получаю при компиляции («ndk-build» из каталога проекта):

jni/Android.mk:tinySAK: LOCAL_SRC_FILES  points to a missing file 

И я полагаю, что другие 2 библиотеки также не работают.Почему он не может их найти?Кроме того, есть ли другие ошибки, которые я сделал в make-файле?

Спасибо

Ответы [ 2 ]

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

Неважно, я решил это.

Я объявил «LOCAL_PATH» только в начале make-файла.В противном случае он будет искать библиотеки в ndk-папках.

2 голосов
/ 05 октября 2011

Попробуйте LOCAL_LDLIBS вместо LOCAL_SRC_FILES.

...