Mac下用cmake编译 Android用libjpeg-turbo

发布时间:2019-07-03 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Mac下用cmake编译 Android用libjpeg-turbo脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

终于有时间写博客了,en@H_406_2@~~~~
之前做电商项目,遇到项目中大量的图片质量处理问题,跳过官方skia)直接利用libjpeg-turbo处理图片


先说下编译静态库与动态库后面有时间再写下如何利用libjPEg-turbo进行图片质量处理的专题

1.编译环境

os @R_281_1512@ ndk
macOS Mojave 10.14.2 3.10.2.4988404 android-ndk-r16b

2.编译脚本

按照官方的BUILDING.md中的编译脚本稍作修改命名为build.sh

#!/bin/bash
#ndk所在目录
NDK_PATH=/Users/hetao/Documents/android-ndk-r16b
#编译环境这里是 macOS
BUILD_PLATFORM=darwin-x86_64
#编译工具链版本
TOOLCHAIN_VERSION=4.9
#最低兼容
ANDROID_VERSION=14
 
#添加cmake环境变量 这里是android sdk中的
export PATH="/Users/hetao/Documents/android-sdk-macOSX/cmake/3.10.2.4988404/bin":"$PATH"
#源码目录 这里是当前脚本所在目录
MY_SOURCE_DIR=$(pwd)
# 生成目标文件目录
PREFIX=$(pwd)/android
 
 
# 目标平台
HOST=arm-linux-androideabi
SYSROOT=${NDK_PATH}/platforms/android-${ANDROID_VERSION}/arch-arm
# armera-v7平台
export CFLAGS="-march=armv7-a -mfloat-abi=softfp -fprefetch-loop-arrays 
  -D__ANDROID_API__=${ANDROID_VERSION} --sysroot=${SYSROOT} 
  -isystem ${NDK_PATH}/sysroot/usr/include 
  -isystem ${NDK_PATH}/sysroot/usr/include/${HOST}"
export LDFLAGS=-pie
TOOLCHAIN=${NDK_PATH}/toolchains/${HOST}-${TOOLCHAIN_VERSION}/prebuilt/${BUILD_PLATFORM}
 
cat <<EOF >toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER ${TOOLCHAIN}/bin/${HOST}-gcc)
set(CMAKE_FIND_ROOT_PATH ${TOOLCHAIN}/${HOST})
EOF
 
cmake -G"Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake 
    -DCMAKE_POSITION_INDEPENDENT_CODE=1 
    -DCMAKE_INSTALL_PREFIX=${PREFIX} 
    ${MY_SOURCE_DIR}
 
make clean
make
make install

这里只编译了ARMv7,有需要其他的平台的参考官方脚本修改下


默认编译出来的so库与.a静态库是带有版本号的,不想要可以去掉
1.在libjpeg-turbo-master/CMakeLists.txt 中注释相关

Mac下用cmake编译 Android用libjpeg-turbo


2.还有libjpeg-turbo-master/sharedlib/CMakeLists.txt中注释相关

Mac下用cmake编译 Android用libjpeg-turbo

3. 编译

build.sh文件放在源码目录下,cd 到源码目录

Mac下用cmake编译 Android用libjpeg-turbo


成功后源码目录android目录下就会有想要的静态与动态库了

Mac下用cmake编译 Android用libjpeg-turbo


如果不成功记得先删掉源码目录下的CMakeCache.txt文件,再执行脚本

这样就可以移植到 Androidstudio中进行下一步的JNI开发

脚本宝典总结

以上是脚本宝典为你收集整理的Mac下用cmake编译 Android用libjpeg-turbo全部内容,希望文章能够帮你解决Mac下用cmake编译 Android用libjpeg-turbo所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。