0

我想将一个 ndroid.mk 文件导入到另一个 android.mk 文件中,我有 android.mk 文件,其中有

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := importfile
LOCAL_SRC_FILES := libEDSDK.a
/*LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/EDSDK $(LOCAL_PATH)/EDSDKErrors $(LOCAL_PATH)/EDSDKTypes*/
LOCAL_ARM_MODE := arm
TARGET_PLATFORM:=android-8
TARGET_ARCH_ABI:=armeabi
TARGET_ABI:=$(TARGET_PLATFORM)-$(TARGET_ARCH_ABI)
include $(PREBUILT_STATIC_LIBRARY)

我想将此 android.mk 文件导入另一个 android.mk 文件

$NDK_MODULE_PATHjni/module1/Android.mk:
 LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := EDSK
LOCAL_SRC_FILES := sample.c
LOCAL_STATIC_LIBRARIES := EDSDK.lib
include $(BUILD_SHARED_LIBRARY)
LOCAL_ARM_MODE := arm
TARGET_PLATFORM:=android-8
TARGET_ARCH_ABI:=armeabi
TARGET_ABI:=$(TARGET_PLATFORM)-$(TARGET_ARCH_ABI)
$(call import-module,importfile)

但是在构建这个时我得到了错误,即

Android NDK: jni/Android.mk: Cannot find module with tag 'importfile' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
Android NDK: The following directories were searched:    
Android NDK: 

请帮忙。

4

2 回答 2

2

明确使用 $(LOCAL_PATH) 的 NDK 构建问题的答案不正确(我不知道它们是否总是不正确,但它们绝对不适用于 NDK 版本 r8b)。您不应该在路径前面加上 $(LOCAL_PATH) - 构建系统会自动为 $(LOCAL_PATH) 添加前缀 - 因此这些脚本在 LOCAL_PATH 前缀两次并且失败。这个错误在整个 Stack Overflow 中重复出现,但我无法通过并纠正有关 Android 构建系统的所有答案,因此我已将其发布在有关该主题的最新帖子之一中。

我建议回答问题的人应该使用最新版本的 NDK 工具,或者使用他们正在使用的版本来限定他们的答案。

于 2012-07-27T11:17:36.550 回答
1

基本上是这样做的:

include $(LOCAL_PATH)/libos/Android.mk

这只是普通的 makefile 语法(见这里:http://www.gnu.org/software/make/manual/html_node/Include.html)

于 2012-06-23T04:26:05.577 回答