1.使用windows NDK方式可以编译通过,但是无法使用,调用的时候报错,无法引用函数
2.在ubuntu上编译通过,并且可以使用
3.编译方法:
1).下载linux版本的NDK
https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip
放在Ubuntu下解压 ,unzipandroid-ndk-r14b-linux-x86_64.zip
2).下载libjpeg-turbo源码
https://libjpeg-turbo.org/ 官网下载,我的版本是1.5.2
tar -xvflibjpeg-turbo-1.5.2.tar.gz
3).配置
virunConfig.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.shsh runConfig.sh
执行 make
执行 make install
在libjpeg-turbo-1.5.2/android-bin 下面就有 os库,了,两个都引用