我尝试使用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)
答案 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
应使用完整路径。