Я получаю сообщение об ошибке при сборке ndk в файле android .mk - PullRequest
1 голос
/ 09 января 2020

Я получаю сообщение об ошибке во время сборки ndk. У меня есть только один android .mk файл и только один файл Application.mk в моем проекте Android NDK: Попытка определить локальный модуль 'protobuf' в /home/parag.j/AndroidArm//jni/Android .mk.
Android NDK: Но этот модуль уже был определен как /home/parag.j/AndroidArm//jni/Android.mk.

Вот мой Android .mk file

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE=ndktest
LOCAL_SRC_FILES=ndktest.cpp
include $(CLEAR_VARS)
LOCAL_MODULE := c++_shared
LOCAL_SRC_FILES := $(LOCAL_PATH)/inc/build/libc++_shared.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := armnn
LOCAL_SRC_FILES := $(LOCAL_PATH)/inc/build/libarmnn.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := armnnTfParser
LOCAL_SRC_FILES := $(LOCAL_PATH)/inc/build/libarmnnTfParser.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := protobuf
LOCAL_SRC_FILES := $(LOCAL_PATH)/inc/build/libprotobuf.so
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_LDLIBS    += -lm -llog -landroid
LOCAL_CFLAGS += -DARM_NEON_64BIT -O3 -mfpu=neon -mcpu=kryo -std=c++14 -pie
LOCAL_SHARED_LIBRARIES := opencv_java3 armnn armnnTfParser protobuf c++_shared
LOCAL_C_INCLUDES  :=   $(LOCAL_PATH)/inc/include\
include $(BUILD_SHARED_LIBRARY)

Вот мой файл Application.mk

APP_ABI:=arm64-v8a 
APP_CFLAGS += -Ofast
APP_OPTIM := release
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PLATFORM := android-22
ANDROID_TOOLCHAIN_NAME := clang++

1 Ответ

1 голос
/ 09 января 2020

Вы забыли (пере) установить LOCAL_MODULE для последней части вашего make-файла. Я думаю, что последние несколько строк должны быть:

LOCAL_MODULE=ndktest
LOCAL_SRC_FILES=ndktest.cpp
LOCAL_LDLIBS    += -lm -llog -landroid
LOCAL_CFLAGS += -DARM_NEON_64BIT -O3 -mfpu=neon -mcpu=kryo -std=c++14 -pie
LOCAL_SHARED_LIBRARIES := opencv_java3 armnn armnnTfParser protobuf c++_shared
LOCAL_C_INCLUDES  :=   $(LOCAL_PATH)/inc/include
include $(BUILD_SHARED_LIBRARY)

(и, конечно, избавиться от строк ndktest в начале файла)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...