Mein Problem ist, dass ich versuche, eine gemeinsame Bibliothek mit einer statischen Bibliothek zu erstellen.Kann eine in NDK c app aufgerufene Funktion in einem Kernel-Treiber definiert werden?
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libRip
LOCAL_SRC_FILES := src/Rip_api.cpp src/Rip_crypto.cpp
LOCAL_CFLAGS := -DCLR_INTERAPTIV_I7 -DCLR_INTERAPTIV -v
#only include corelockr and rip headers
LOCAL_C_INCLUDES := $(LOCAL_PATH)/inc/ $(LOCAL_PATH)/include/ $(LOCAL_PATH)/../../hardware/libhardware/include/hardware/
LOCAL_LDLIBS := -llog -L$(LOCAL_PATH)/library -lthisis_crypto -lthisis_interaptiv
LOCAL_SHARED_LIBRARIES = libsmem.sastra
#test seqr library
#LOCAL_LDFLAGS := -v -L$(LOCAL_PATH)/library -lthisis_crypto -lthisis_interaptiv
#this option will build static library
include $(BUILD_SHARED_LIBRARY)
Auf diese Weise erhalte ich einige undefined reference Fehler
mmm -B path/to/test/app/android.mk
wie diese
I7_Embedded_SDK/corelockr/././src/request.c:494: undefined reference to `function'
auf nm tun sehe ich in dieser request.o Datei
request.o:
U function
Ich habe nicht die Quelle von t Die Hauptbibliothek thisis_crypto und thisis_interaptive, aber die Wrapper-Bibliothek libRip.so ruft die Funktionen darin auf. request.o ist in der Bibliothek thisis_interaptive.
Das bedeutet, dass diese Funktionsdefinition nicht in der Bibliothek enthalten ist. Ferner überprüfte ich die Kernel-Treiber ipc.ko, die auch ein Teil all dieser Arbeit ist nm
T function
kernel_driver.ko, das bedeutet, dass es hier definiert ist.
1) Ist es möglich, dass die App, die ich versuche zu bauen, einige Funktionen haben, die Kernel-Treiber verwenden.
2) Wenn möglich, wie kann ich die gemeinsame Bibliothek erstellen?
Dank
Also, wenn ich eine Funktion undefined in nm der User-Space-Bibliothek, das heißt, es ist wirklich undefiniert und es ist ein Fehler. Auch wenn ich mit der statischen Bibliothek baue, bekomme ich keine undefinierten Referenzfehler. Ist es möglich, dass die App nicht die Funktionen verwendet, die in der Bibliothek nicht definiert sind, so dass diese Funktionen aus der ausführbaren Datei entfernt werden? –
Sorry Mann Ich verstehe deine Frage nicht wirklich .. – Ming