2016-09-21 1 views
0

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

Antwort

0

Kernel und Userspace sind zwei völlig getrennte Adressräume. Also die kurze Antwort ist NEIN :)

+0

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? –

+0

Sorry Mann Ich verstehe deine Frage nicht wirklich .. – Ming

Verwandte Themen