Libjpeg is a widely used C library for reading and writing JPEG image files. It was developed by Tom Lane and the Independent JPEG Group (IJG) during the 1990's and it is now maintained by several developers using various services identified in the SourceForge summary.
Libjpeg是一款常用的jpeg图像压缩和解压的函数库,安装libjpeg可以直接使用apt-get等命令也可以下载libjpeg源码编译安装,这里介绍一下通过源码在主机和无编译器的嵌入式系统上安装libjpeg的方法。
较新版本的libjpeg版本是9.0.0,以9.0.0版本的源码为例,源码获取可以在网上搜索,解压之后在源码中会有一个BUILDING.md文件,这个文件是进行编译的条件和步骤介绍。编译条件为:
autoconf 2.56 or later、
automake 1.7 or later、
libtool 1.4 or later、
NASM or YASM (if building x86 or x86-64 SIMD extensions)、
GCC v4.1 (or later) or Clang recommended for best performance
等,尽量使用最新版本的软件。编译步骤:
1、进入源码目录执行 autoreconf -fiv
2、进入目标文件存放目录(可以还是源码目录,这样生成的文件还在源码目录下),执行configure配置文件:
sh {source_directory}/configure [additional configure flags]
source_directory就是源码路径,additional configure flags是附加配置选项,如果是编译成本机使用的库文件可以不加配置选项,如果是给嵌入式系统编译库文件这additional configure flags需要设置:
./configure CC=arm-linux-gcc LD=arm-linux-ld --host=arm-linux --enable-shared --enable-static
CC是指定交叉编译器的路径,LD是指定交叉链接器的路径,host是指宿主系统类型,这里是arm-linux,后面enable shared和enable static是指是否生成动态链接库和静态链接库。上面的命令是目标平台为arm的交叉编译命令,mips平台的交叉编译命令为:
sh configure CC=/home/tq/buildroot-gcc342/bin/mipsel-linux-uclibc-gcc LD=/home/tq/buildroot-gcc342/bin/mipsel-linux-uclibc-ld --host=mips-linux --enable-shared --enable-static
其中交叉编译器位置为/home/tq/buildroot-gcc342。
3、执行make命令进行编译,编译完成之后生成的文件在building dir下面的“.libs”文件夹中。将下面三个文件
libjpeg.so
libjpeg.so.9
libjpeg.so.9.0.0
拷贝到/usr/lib/文件夹中去就能使用了。