NDK Android-不能同时构建ARMv5和V7

 2023-01-21    308  

问题描述

我面临一个奇怪的问题.
我正在为我的Android应用程序构建共享库.

我不能同时构建ARMV5和ARMV7.
如果这样做,我会在第二次运行时(NDK构建ARMV7 LIB)在源文件上遇到很多错误:

NDK Android-不能同时构建ARMv5和V7

FinderPatternInfo.o: previous definition here
multiple definition of ...

我的 application.mk

APP_ABI             := armeabi armeabi-v7a
APP_PLATFORM        := android-8
APP_STL             := stlport_static
APP_CPPFLAGS        += -fexceptions

如果我仅设置app_abi:= armeabi或app_abi:= armeabi-v7a ..

有什么想法吗?
谢谢您的帮助,

编辑:android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE            := MyModule

MY_LOCAL_INCLUDED_FILES += $(wildcard $(LOCAL_PATH)/*.h)
MY_LOCAL_INCLUDED_FILES += $(wildcard $(LOCAL_PATH)/*.hpp)
MY_LOCAL_INCLUDED_FILES += $(wildcard $(LOCAL_PATH)/bigint/*.h)
... (many includes)

LOCAL_C_INCLUDES        :=  $(subst jni/, , $(MY_LOCAL_INCLUDED_FILES))

MY_LOCAL_SRC_FILES += $(wildcard $(LOCAL_PATH)/*.c)
MY_LOCAL_SRC_FILES += $(wildcard $(LOCAL_PATH)/*.cpp)
MY_LOCAL_SRC_FILES += $(wildcard $(LOCAL_PATH)/bigint/*.c)
.... (many cpp files)

LOCAL_SRC_FILES     :=  $(subst jni/, , $(MY_LOCAL_SRC_FILES))

LOCAL_CFLAGS        := -DNO_ICONV

include $(BUILD_SHARED_LIBRARY)

推荐答案

Android Make Make System对您的Android.mk进行分析一次,因此您的 my_local_src_files 在有两个目标时,将获得所有.c和.cpp文件的完整集,但只有一个目标时只有一个.

如果您的第一个 my_local_src_files 使用的分配:=而不是 +=,我认为这将解决问题.

以上所述是小编给大家介绍的NDK Android-不能同时构建ARMv5和V7,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/26243.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。