我正在尝试运行NDK来编译本机代码以在Atom(x86)处理器和ARM上运行。无论我如何设置APP_ABI,NDK都会生成armeabi库。即使我只为APP_ABI放了x86。文件大小始终相同。这是我的Application.mk文件:
LOCAL_PATH := $(call my-dir)
APP_ABI := x86
include $(CLEAR_VARS)
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_MODULE := myjni-jni
LOCAL_SRC_FILES := myjni-jni.c
include $(BUILD_SHARED_LIBRARY)
无论我在APP_ABI之后放了什么我得到armeabi并且它总是相同的大小。这里有什么不对?我正在使用最新的NDK。
答案 0 :(得分:74)
您应该将APP_ABI变量放在 Application.mk 文件而不是 Android.mk 文件中。
它写在NDK(docs / CPU-ARCH-ABIS.html文件)的文档中。
答案 1 :(得分:35)
如果您没有Application.mk
文件,请在jni
下的project root
文件夹中创建一个文件。
project_root / JNI / Application.mk
向其添加目标编译平台:
APP_ABI:= x86
或平台:
APP_ABI:= armeabi armeabi-v7a x86 mips
答案 2 :(得分:4)
您也可以将APP_ABI
直接设置为ndk-build
shell命令:
ndk-build APP_ABI=x86