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一样。

 

posted @ 2018-10-06 21:52  一条水煮鱼  阅读(939)  评论(0编辑  收藏  举报