1.使用windows NDK方式可以编译通过,但是无法使用,调用的时候报错,无法引用函数
2.在ubuntu上编译通过,并且可以使用
3.编译方法:
1).下载linux版本的NDK
https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
放在Ubuntu下解压 ,unzip android-ndk-r14b-linux-x86_64.zip
2).下载libjpeg-turbo源码
https://libjpeg-turbo.org/ 官网下载,我的版本是1.5.2
tar -xvf libjpeg-turbo-1.5.2.tar.gz
3).配置
vi runConfig.sh
写入:
build_directory=/home/wy/libjpeg/libjpeg-turbo-1.5.2
source_directory=/home/wy/libjpeg/libjpeg-turbo-1.5.2
NDK_PATH=/home/wy/NDK/android-ndk-r14b
BUILD_PLATFORM=linux-x86_64
TOOLCHAIN_VERSION=4.9
ANDROID_VERSION=19
# It should not be necessary to modify the rest
HOST=arm-linux-androideabi
SYSROOT=${NDK_PATH}/platforms/android-${ANDROID_VERSION}/arch-arm
ANDROID_CFLAGS="-march=armv7-a -mfloat-abi=softfp -fprefetch-loop-arrays --sysroot=${SYSROOT}"
TOOLCHAIN=${NDK_PATH}/toolchains/${HOST}-${TOOLCHAIN_VERSION}/prebuilt/${BUILD_PLATFORM}
export CPP=${TOOLCHAIN}/bin/${HOST}-cpp
export AR=${TOOLCHAIN}/bin/${HOST}-ar
export NM=${TOOLCHAIN}/bin/${HOST}-nm
export CC=${TOOLCHAIN}/bin/${HOST}-gcc
export LD=${TOOLCHAIN}/bin/${HOST}-ld
export RANLIB=${TOOLCHAIN}/bin/${HOST}-ranlib
export OBJDUMP=${TOOLCHAIN}/bin/${HOST}-objdump
export STRIP=${TOOLCHAIN}/bin/${HOST}-strip
#cd {build_directory}
#sh {source_directory}/configure --host=${HOST}
sh ./configure --host=${HOST} \
CFLAGS="${ANDROID_CFLAGS} -O3 -fPIE" \
CPPFLAGS="${ANDROID_CFLAGS}" \
LDFLAGS="${ANDROID_CFLAGS} -pie" --with-simd ${1+"$@"} \
--prefix=/home/wy/libjpeg/libjpeg-turbo-1.5.2/android-bin
#make
保存文件
--prefix=/home/wy/libjpeg/libjpeg-turbo-1.5.2/android-bin 这是输入的编译文件,自己定
-march=armv7-a 编译类型
ANDROID_VERSION=19 android库版本
执行 chmod +x runConfig.sh
sh runConfig.sh
执行 make
执行 make install
在libjpeg-turbo-1.5.2/android-bin 下面就有 os库,了,两个都引用