Probleme der Verknüpfung von statischen Bibliotheken mit Android NDK r5b
Kürzlich aktualisiert haben, um NDK r5b, und die build-Fehler "undefined reference", um Funktionen in einer statischen Bibliothek.
Hier ist der Fehler
/home/brian/workspace/VoiceEngineDemo/obj/local/armeabi-v7a/objs-debug/voiceenginejni/voice_engine_jni.o: In function `initVE':
/home/brian/workspace/VoiceEngineDemo/jni/voice_engine_jni.c:944: undefined reference to `VE_ADT_create'
Scheint es die link-Prozess ist nicht das laden der statischen Modul-auch wenn es definiert ist, in der Android.mk wie folgt:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := voiceenginejni
LOCAL_SRC_FILES := voice_engine_jni.c printing.c jaudio.c etime.c
LOCAL_CFLAGS := -D __arm -D ANDROID -D USE_AEC_DEFAULTS -D USE_EC_DEFAULTS -D _DEBUG -D EC_VARIANT=EC_VARIANT_NEC -D AECG1_5_ENABLE
LOCAL_STATIC_LIBRARIES := libvoiceengine libcpufeatures libaecg2
LOCAL_LDLIBS := -llog -ldl
include $(BUILD_SHARED_LIBRARY)
$(call import-module,cpufeatures)
Den VE_ADT_create Funktion befindet sich in libvoiceengine.eine, die platziert wurde in der /obj/local/armeabi-v7a/- Verzeichnis.
Ich würde schätzen, es wenn jemand kann etwas Licht auf das für mich. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bauen Sie die Bibliotheken mit ndk-build?
Wenn nicht, ich in der Regel halten die Bibliotheken habe ich gebaut mit der standalone toolchain in die jni-Ordner und verweisen Sie direkt mit Namen in
LOCAL_LDLIBS
:Scheint jede Bibliothek muss Ihre eigene vorgefertigte Modul wie abgebildet in: Verknüpfung von Fremd-libs (libs.a) mit NDK