Android Ndk错误没有规则使目标

Android Ndk Error No rule to make target

本文关键字:目标 有规则 Ndk 错误 Android      更新时间:2023-10-16

我正在尝试使用Ndk构建Android Cpp项目。

当我构建应用程序时,它只生成jni文件夹文件

无法生成jni子文件夹文件

我收到这个错误

make:***没有规则使目标src/main/jni/src/main/jni/A/B/Helper.cpp', needed by构建/ndk/obj/local/armeabi/objs/demo/src/main/jni/A/B/Helper.o'.Stop。

TOP_LOCAL_PATH:=$(call my-dir)
LOCAL_PATH := $(TOP_LOCAL_PATH)  
include $(CLEAR_VARS)
LOCAL_MODULE    := demo
LOCAL_SRC_FILES := a.cpp b.cpp c.cpp d.cpp
LOCAL_SRC_FILES := $(LOCAL_PATH)/A/B/Helper.cpp
LOCAL_CFLAGS    += -std=c++11 -frtti -fexceptions -fpermissive
LOCAL_LDLIBS    += -llog -lGLESv2 -lEGL -landroid -lOpenSLES -lGLESv1_CM -lz
LOCAL_C_INCLUDES := $(LOCAL_PATH)/A/B
include $(BUILD_SHARED_LIBRARY)

LOCAL_SRC_FILES中列出的文件名是相对于LOCAL_PATH。因此,您可以在多行上定义此列表,但可以通过附加列表而不是替换列表

因此,您的Android.mk文件可能看起来像这样:

TOP_LOCAL_PATH:=$(call my-dir)
LOCAL_PATH := $(TOP_LOCAL_PATH)  
include $(CLEAR_VARS)
LOCAL_MODULE    := demo
LOCAL_SRC_FILES := a.cpp b.cpp c.cpp d.cpp
LOCAL_SRC_FILES += A/B/Helper.cpp
LOCAL_CFLAGS    += -std=c++11 -frtti -fexceptions -fpermissive
LOCAL_LDLIBS    += -llog -lGLESv2 -lEGL -landroid -lOpenSLES -lGLESv1_CM -lz
LOCAL_C_INCLUDES := $(LOCAL_PATH)/A/B
include $(BUILD_SHARED_LIBRARY)

请注意,列表LOCAL_C_INCLUDES应使用完整路径。