安卓libjpeg编译linux,Mac下用cmake编译 Android用libjpeg-turbo

终于有时间写博客了,en~~~~

之前做电商项目,遇到项目中大量的图片质量处理问题,跳过官方的skia)直接利用libjpeg-turbo处理图片

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

1.编译环境

os

cmake

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 <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 中注释相关

a3fbd067800f4b3f324ab1a474169b16.png

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

f10f108e2bb32b3e50bb0a7511265384.png

3. 编译

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

0878df898068ba9a9b7d45d5b319a79f.png

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

7c864c14d15faa82cd61dbcd4ee66382.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值