用于安卓的 libjpeg-turbo [英] libjpeg-turbo for android
问题描述
我需要 libjpeg-turbo 用于 android ndk.有没有人设法将它编译为.a(静态)库?我已经尝试了几次,但它只给了我很多错误.
I need libjpeg-turbo for android ndk. Did anyone managed to compile it as .a (static) lib? I have tried a few times, but it gave me a lot of errors only.
推荐答案
安装 Android NDK.以下说明是用r8b验证的,老版本可能有问题,我不知道.
Install Android NDK. Following instructions were verified with r8b, older versions may have problems, I don't know.
从 Benjamin Gaignard 处获取 libjpeg-turbo 的 Android 源代码:
Get the Android sources for libjpeg-turbo from Benjamin Gaignard:
git clone git://git.linaro.org/people/tomgall/libjpeg-turbo/libjpeg-turbo.git -b linaro-android
在 git 创建的 libjpeg-turbo 目录中,编辑文件 Android.mk:在第 70 行之后,LOCAL_MODULE :=libjpeg
,添加以下内容:
In the libjpeg-turbo directory created by git, edit file Android.mk: after line 70, LOCAL_MODULE := libjpeg
, add the following:
ifeq ($(notdir $(MAKECMDGOALS)),libjpeg.a)
LOCAL_SRC_FILES += $(libsimd_SOURCES_DIST)
include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := dummy
endif
运行 ndk-build:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk obj/local/armeabi/libjpeg.a
利润!
PS:您可能想要 armeabi-v7a 版本:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk APP_ABI=armeabi-v7a obj/local/armeabi-v7a/libjpeg.a
或者为ARM编译,为了提高性能,添加到命令行:
Or compile for ARM, to improve performance, add to command line:
LOCAL_ARM_MODE=arm
如果您的目标支持 NEON,请添加到命令行:
If your target has NEON support, add to command line:
LOCAL_ARM_NEON=true ARCH_ARM_HAVE_NEON=true
<小时>
更新:要使其与 Android NDK r15 及更高版本一起使用,请从 Android.mk 中删除对 libcutils
的所有引用.
UPDATE: to get it work with Android NDK r15 and later, remove all references to libcutils
from Android.mk.
这篇关于用于安卓的 libjpeg-turbo的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!