我正在将MTP模块添加到Android源代码中的Recovery中。 MTP被定义为共享库(在路径框架/ av / media / mtp / Android.mk中):
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
MtpServer.cpp \
other sources files
LOCAL_MODULE:= libmtp
LOCAL_CFLAGS := -DMTP_DEVICE -DMTP_HOST
LOCAL_SHARED_LIBRARIES := libutils libcutils liblog libusbhost libbinder
include $(BUILD_SHARED_LIBRARY)
我想在Recovery中使用此模块,因此我在恢复路径中添加了一个名为minmtp的新模块。 Android.mk是:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libminmtp
LOCAL_SRC_FILES := \
minmtp.cpp \
MyMtpDatabase.cpp \
LOCAL_SHARED_LIBRARIES += \
libmtp
LOCAL_C_INCLUDES += \
$(LOCAL_PATH) \
frameworks/av/media/mtp
LOCAL_CFLAGS += -DMTP_DEVICE -DMTP_HOST -Wall -Werror -Wno-error=deprecated-declarations
include $(BUILD_STATIC_LIBRARY)
我在Android.mk中将libminmtp添加到恢复中:
LOCAL_STATIC_LIBRARIES += libminmtp
include $(LOCAL_PATH)/minmtp/Android.mk
编译成功。
但是当我在recovery.cpp中使用minmtp.cpp中定义的类时,由于"未定义对"的引用,编译将失败。错误。未定义的引用函数都在MtpServer.cpp和Android mtp模块的其他源文件中定义,并在minmtp.cpp中使用。
我认为这是因为链接器没有链接libmtp.so,所以我应该如何修改我的代码才能使它工作?