Mac下用cmake编译 Android用libjpeg-turbo
16lz
2021-01-26
终于有时间写博客了,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#编译环境这里是 macOSBUILD_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-androideabiSYSROOT=${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=-pieTOOLCHAIN=${NDK_PATH}/toolchains/${HOST}-${TOOLCHAIN_VERSION}/prebuilt/${BUILD_PLATFORM} cat <toolchain.cmakeset(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 cleanmakemake install
这里只编译了ARMv7,有需要其他的平台的参考官方脚本修改下
默认编译出来的so库与.a静态库是带有版本号的,不想要可以去掉
1.在libjpeg-turbo-master/CMakeLists.txt 中注释相关
3. 编译
build.sh文件放在源码目录下,cd 到源码目录
如果不成功记得先删掉源码目录下的CMakeCache.txt文件,再执行脚本
这样就可以移植到 Androidstudio中进行下一步的JNI开发
更多相关文章
- android学习——NDK入门 windows下安装cygwin 与 Eclipse使用CDT
- Android(安卓)类代码防止反编译的办法
- android方法数超过64k和Gradle编译OOM解决方法
- Android(安卓)jni初探
- 总结:Android之Gradle总结
- webrtc服务器janus android客户端编译学习三
- 下载和编译Android源码问题集(持续更新)
- Gradle sync failed: Could not find method android() for argu
- 记录----编译libyuv、迁移至Android(安卓)studio的操作和遇到的