【问题标题】:I am getting error while ndk build in android.mk filendk 在 android.mk 文件中构建时出现错误
【发布时间】:2020-04-26 20:14:05
【问题描述】:

我在 ndk 构建期间遇到错误。我的项目中只有一个 android.mk 文件和一个 Application.mk 文件 Android NDK:尝试在 /home/parag.j/AndroidArm//jni/Android.mk 中定义本地模块“protobuf”。
Android NDK:但是这个模块已经被 /home/parag.j/AndroidArm//jni/Android.mk 定义了。

这是我的 Android.mk 文件

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++

【问题讨论】:

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


    【解决方案1】:

    您忘记(重新)设置 LOCAL_MODULE 为您的 makefile 的最后一部分。我认为最后几行应该是:

    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 行)

    【讨论】:

    • 它工作正常,但我得到“Circular /home/parag.j/AndroidArm//obj/local/arm64-v8a/libprotobuf.so
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2018-12-18
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多