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./tmp/include$ sudo cp * ~/system/usr/local/arm/4.3./arm-none-linux-gnueabi/libc/usr/include/
zhu@zhu-virtual-machine:~/system/libjpeg-turbo-1.2./tmp/lib$ sudo cp *so* ~/system/usr/local/arm/4.3./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一样。

05-11 14:02