Ошибка Android Ndk Нет правила для создания цели

Я пытаюсь построить проект Android Cpp с использованием Ndk.

когда я создаю приложение, оно генерирует только файлы папок jni

невозможно создать файлы подпапок jni

я получил эту ошибку

make: *** Нет правила, чтобы сделать цель src/main/jni/src/main/jni/A/B/Helper.cpp', needed byпостроить / промежуточные / НДК / объект / местные / armeabi / OBJS / демо / SRC / Основной / 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

Решение

Имена файлов, которые перечислены в 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 следует использовать полные пути.

0

Другие решения

Других решений пока нет …