Android Ndk错误没有规则来制作目标

时间:2015-11-06 10:45:11

标签: android c++ android-ndk android.mk ndk-build

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

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

无法生成jni子文件夹文件

我收到了这个错误

make:***没有规则来制作目标src/main/jni/src/main/jni/A/B/Helper.cpp', needed by build / intermediates / ndk / obj / local / armeabi / objs / demo / src / main / jni / A / B / Helper.o'。停止。

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)

1 个答案:

答案 0 :(得分:0)

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 应使用完整路径。