中不起作用我在Android NDK中有一個測試應用程序。以前我能夠使用提供的靜態庫編譯和運行這個應用程序。提供的靜態庫是「libfulllib.a」。現在我已經編寫了包裝函數,並創建了一個包裝函數庫,即「libwrapper.a」。我的工作android.mk文件看起來像這樣:兩個庫的合併在android ndk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := rip_test
LOCAL_SRC_FILES := src/rip_test.cpp
LOCAL_CFLAGS := -DCLR_INTERAPTIV_I7 -DCLR_INTERAPTIV -v
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../RIP/include/ \
$(LOCAL_PATH)/../../../hardware/libhardware/include/hardware \
$(LOCAL_PATH)/../../../hardware/libhardware/include \
$(LOCAL_PATH)/src \
$(LOCAL_PATH)/../../RIP/inc \
LOCAL_SHARED_LIBRARIES = libsmem.sastra
LOCAL_LDFLAGS := \
-v \
-L$(ANDROID_PRODUCT_OUT)/system/lib \
-lsmem.$(TARGET_BOARD_PLATFORM) \
-L$(LOCAL_PATH)/../../RIP/library \
-lwrapper \
-lfulllib \
-llog \
-lcutils \
-lipc.$(TARGET_BOARD_PLATFORM) \
# this option will build executables instead of building library for
# android application.
include $(BUILD_EXECUTABLE)
這裏的包裝是我做的一個圖書館和全包含的功能,真正定義。 現在我不想將fulllib暴露給任何人,所以我從包裝和「fulllib」中取出所有「.o」。並建立了一個'全部'圖書館。現在我的android.mk看起來像這樣:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := rip_test
LOCAL_SRC_FILES := src/rip_test.cpp
LOCAL_CFLAGS := -DCLR_INTERAPTIV_I7 -DCLR_INTERAPTIV -v
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../RIP/include/ \
$(LOCAL_PATH)/../../../hardware/libhardware/include/hardware \
$(LOCAL_PATH)/../../../hardware/libhardware/include \
$(LOCAL_PATH)/src \
$(LOCAL_PATH)/../../RIP/inc \
LOCAL_SHARED_LIBRARIES = libsmem.sastra
LOCAL_LDFLAGS := \
-v \
-L$(ANDROID_PRODUCT_OUT)/system/lib \
-lsmem.$(TARGET_BOARD_PLATFORM) \
-L$(LOCAL_PATH)/../../RIP/library \
-lall \
-llog \
-lcutils \
-lipc.$(TARGET_BOARD_PLATFORM) \
# this option will build executables instead of building library for
# android application.
include $(BUILD_EXECUTABLE)
我能夠編譯,但測試應用程序不工作相同。我想問: 這樣做是否安全?
這兩者有什麼區別?