1

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

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

无法生成 jni 子文件夹文件

我收到了这个错误

make: *** 没有规则来制作目标src/main/jni/src/main/jni/A/B/Helper.cpp', needed bybuild/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)
4

1 回答 1

1

中列出的文件名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应使用完整路径。

于 2015-11-06T11:41:26.050 回答