jpeglib的使用
1. 解压jpeglib
tar xvzf libjpeg-turbo-1.2.1.tar.gz
2. 阅读里面的说明文件,得到jpeg解压缩的一般步骤:
/*Allocate and initialize a JPEG decompression object // 分配和初始化一个decompression结构体 *Specify the source of the compressed data (eg, a file) // 提定源文件 *Call jpeg_read_header() to obtain image info // 用jpeg_read_header获得jpg信息 *Set parameters for decompression // 设置解压参数,比如放大、缩小 *jpeg_start_decompress(...); // 启动解压:jpeg_start_decompress *while (scan lines remain to be read) * jpeg_read_scanlines(...); // 循环调用jpeg_read_scanlines *jpeg_finish_decompress(...); // jpeg_finish_decompress *Release the JPEG decompression object // 释放decompression结构体
3. 配置jpeglib
./configure --help 获得./configure的使用,我们关心的是:
--prefix=PREFIX install architecture-independent files in PREFIX [/opt/libjpeg-turbo]
这是jpeglib的安装目录,默认为/opt/libjpeg-turbo。
--host=HOST cross-compile to build programs to run on HOST [BUILD]
指定交叉编译,是arm-linux
4. ,mkdir tmp
5. ./configure --prefix=/home/zhu/system/libjpeg-turbo-1.2.1/tmp --host=arm-linux
6. make
7. make install
8. 将编译出来的头文件和库放到gcc编译器下面,这样就不用每次编译时指定头文件和库了
zhu@zhu-virtual-machine:~/system/libjpeg-turbo-1.2.1/tmp/include$ sudo cp * ~/system/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/
zhu@zhu-virtual-machine:~/system/libjpeg-turbo-1.2.1/tmp/lib$ sudo cp *so* ~/system/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib -d
9. 就像freetype一样,把所有的.so库文件拷到要挂接的根文件目录下的lib子目录下,结果运行程序出现如下错误:
./jpg2rgb: /usr/lib/libjpeg.so.62: no version information available (required by ./jpg2rgb)
10. 解决办法:
11. 虽然相应的库都安装好了,但编译文件时仍然要 -ljpeg.就和当初-lfreetype一样。