0

ある ndroid.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 のプレフィックスを 2 回付けて失敗します。この間違いはスタック オーバーフロー全体で繰り返されていますが、Android ビルド システムに関するすべての回答を確認して修正することはできないため、この件に関する最新の投稿の 1 つに投稿しました。

質問に答える人は、最新バージョンの 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 に答える