android-ndk l'Ajout de bibliothèques statiques pour la android.mk
J'ai trois bibliothèques statiques à partir d'un cadre que je veux utiliser dans mon projet. Ces bibliothèques sont appelées libtinySAK_armv7-a.a, libtinyNET_armv7-a.a and libtinyHTTP_armv7-a.a
. Je l'ai placé dans le même dossier que le Android.mk
etApplication.mk
.
Mon code natif dépend donc en fait je veux les inclure dans ma bibliothèque partagée.
De ce que j'ai lu sur stackoverflow et google avait, je crois, la android.mk est censé ressembler à quelque chose comme ceci:
# 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)
Ma Demande.mk:
APP_STL := stlport_static
APP_ABI := armeabi-v7a
L'erreur que je reçois lors de la compilation("ndk-build" du projet dir) est
jni/Android.mk:tinySAK: LOCAL_SRC_FILES points to a missing file
Et je suppose que les 2 autres bibliothèques également échouer. Pourquoi ne peut on les trouver?
En outre, il n'existe pas d'autres erreurs que j'ai fait dans le makefile?
Grâce
OriginalL'auteur KaiserJohaan | 2011-10-05
Vous devez vous connecter pour publier un commentaire.
Tant pis, je l'ai résolu.
J'ai déclaré la "LOCAL_PATH" au début de la file. Sinon, il serait à la recherche de la libs dans le ndk-dossiers.
Où d'autre devrait le LOCAL_PATH être déclaré
OriginalL'auteur KaiserJohaan
Essayer
LOCAL_LDLIBS
au lieu deLOCAL_SRC_FILES
.+1 parce que LOCAL_LDLIBS a fonctionné pour moi.
OriginalL'auteur Ertebolle