Mac下用cmake编译 Android用libjpeg-turbo

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


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

##1.编译环境

oscmakendk
macOS Mojave 10.14.23.10.2.4988404android-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 中注释相关
image
2.还有libjpeg-turbo-master/sharedlib/CMakeLists.txt中注释相关
image
##3. 编译
build.sh文件放在源码目录下,cd 到源码目录
image
成功后源码目录android目录下就会有想要的静态与动态库了
image


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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值