前言:使用android的交叉编译工具链,ndk-build编译freeimage源码到安卓的动态库so。freeimage源码提供了各个平台的编译makefile却没有安卓的,也没有cmake,只好自己动手编译。一般而言,交叉编译安卓两种方式:1、cmake调用ndk的cmake工具链;2、直接使用ndk-build。若源码有cmake,前者很方便,本次选择后者。
1、下载freeimage源码。
因为官网的有问题,需要修改源码。不修改的话可能会遇到各种报错,如swap,memset,wc++11-narrowing等问题。我修改了一版Github:https://github.com/jincike/freeimage_3154_android_ndk21.git
2、官网下载ndk
3、编译
规避的问题如下:
由于freeimage官方不支持android,GitHub上有人编译过,不过版本太旧。我拉去下来很多版本都不能用,或者编译出来的动态库libFreeImageShared.so只有5.4k,readelf看下没有导出函数,不能用。相信看我教程很多人遇到过。
关闭动态库依赖静态库: