Linux系统下编译Android可用的jpeg动态库与静态库

弄了好几天,今天终于成功编译出jpeg的动态库和静态库,这里我记录一下具体的操作

一、下载jpeg源码包

1.通过wget指令,下载jpeg源码包,得到文件 jpegsrc.v9c.tar.gz

wget http://www.ijg.org/files/jpegsrc.v9c.tar.gz

2.解压jpegsrc.v9c.tar.gz,得到一个文件jpeg-9c,这里面都是jpeg的源文件

tar xvf jpegsrc.v9c.tar.gz

3.进入jpeg-9c的文件夹中,查看配置的帮助文档

./configure --help

这里包含了所有的配置信息,例如下面,前面是配置字段,后面是说明,稍后我会介绍几个我用到的配置参数

二、设置配置参数

我已经下载好NDK了,下载的方法自行百度了~,也比较简单,我就不赘述了,下面是配置的执行代码

./configure --prefix=/root/test/jpeg-9c --host=arm-linux-androideabi CC="/root/linux/android-ndk-r17b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc --sysroot=/root/linux/android-ndk-r17b/platforms/android-21/arch-arm -isystem /root/linux/android-ndk-r17b/sysroot/usr/include/ -isystem /root/linux/android-ndk-r17b/sysroot/usr/include/arm-linux-androideabi" CFLAGS="-D__ANDROID_API__=21"

(1)--prefix:动态库及头文件生成的目录,生成如下四个文件夹,include中是头文件,lib中有生成的动态so库及静态a库

(2)--host:构建的动态库及静态库在哪种CPU架构上运行,这里我写的arm-linux-androideabi,在armeabi-v7a的CPU上运行

(3)CC:前半句指定了编译器,这里我写的是NDK中的编译器;之后的--sysroot与-isystem指定了头文件的查找路径

扫描二维码关注公众号,回复: 6129892 查看本文章

(4)CFLAGS:这个一定要注意,如果使用的AndroidNDK的编译器,NDK版本小于等于15这个可以不写;如果大于15需要写上这句代码,指定运行的Android版本号,否则会报 undefined reference to ‘stderr’类似的这种错误

1.如果执行成功会有如下的提示

2.之后输入make指令

make

有类似如下的输出,表示成功

3.之后输入make install指令

make install

输出如下,表明成功

执行成功之后就会在--prefix指定的路径中生成相应的文件,具体怎么在Android中使用这些静态库和动态库,百度一下你知道,我这里只介绍一下jpeg的编译过程~

欢迎留言,欢迎纠错~

猜你喜欢

转载自blog.csdn.net/qq_32019367/article/details/86776165