我正在尝试配置Android.mk以交叉编译本机代码以支持不同的芯片组,即armeabi,mips和x86.我知道我可以用以下方式配置Application.mk来编译不同芯片组的源代码:
APP_ABI := all
Run Code Online (Sandbox Code Playgroud)
这将触发Android-NDK的构建脚本来编译所有芯片组的源代码.但是,我想动态告诉Android.mk寻找使用不同芯片组编译的不同静态库依赖项.
# Get the architecture info
ARCH := ????
include $(CLEAR_VARS)
LOCAL_MODULE:= mylib
LOCAL_SRC_FILES:= build/lib/libxxx_$(ARCH).a
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
include $(PREBUILT_STATIC_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样,有人可以建议如何这样做吗?
更新:我在Application.mk中尝试过类似的东西:
Run Code Online (Sandbox Code Playgroud)APP_ABI := armeabi armeabi-v7a mips x64使用Android.mk:
Run Code Online (Sandbox Code Playgroud)# Get the architecture info ARCH := $(APP_ABI) include $(CLEAR_VARS) LOCAL_MODULE:= mylib LOCAL_SRC_FILES:= build/lib/libxxx_$(ARCH).a LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) include $(PREBUILT_STATIC_LIBRARY)但它有以下错误:
Run Code Online (Sandbox Code Playgroud)The LOCAL_SRC_FILES for a prebuilt static library should only contain one item这是有道理的.我想在Application.mk中传递APP_ABI:= all并能够动态引用它.有任何想法吗?
我写了一个Android应用程序.它使用主C代码模块和链接的C代码模块.现在我想用ARM汇编程序模块替换链接模块.有人有一个简单的例子吗?