”树莓派“安装libjpeg库

来源:互联网 发布:薄暮知秋什么意思 编辑:程序博客网 时间:2024/05/18 13:26

之前我用framebuffer成功显示bmp图片,但是bmp图片未进行压缩,所以比jpeg,png这类格式的图片大,比如bmp图片一般按M来计算,压缩成JPEG后几十K,所以实际应用来说还是选择JPEG。JPEG是一种经过抽样、量化、编码等数字处理后的图片类型,最大程度的还原图像原本和最大程度的压缩,是一种很好的图像压缩技术。libjpeg库中的函数能够对JPEG图像进行解码等操作。


1.下载libjpeg库。

我用的是libjpeg-6b,下载地址如下:

http://freeware.sgi.com/source/libjpeg/libjpeg-6b.tar.gz


2.把压缩包放在linux某个目录下,我放在/home目录下。

解压缩:

sudo tar xzvf libjpeg-6b.tar.gz

解压之后进入目录:

cd libjpeg-6b/


3.在该目录下创建五个目录,否则编译时无法创建,特别是后面四个目录,均在第一个目录中创建。

mkdir jpeg-6b

cd jpeg-6b

mkdir bin

mkdir lib

mkdir include

mkdir -p man/man1

因为后面在make install中会在相应目录下生成各种文件,这样做为了后面方便观察,也能够清晰把它作为静态库使用。


4.咱们先把”工具“准备齐全了再编译安装,前面是容器,这里是安装杀手锏,这是make install的重要工具libtool,没有这个工作则不能够安装成功。

下载libtool.tar.gz,放在/home下。

解压:

tar xzvf  libtool-2.4.2.tar.gz

配置:

cd libtool-2.4.2/

sudo  ./configure --host=arm-linux  CC=gcc

这是配置libtool,这里需要注意:configure 参数 不能同时用 ––host 和 –bulid 参数,会编译不能通过,这里配置文件指定了交叉编译器,主机等信息,可以添加安装目录--prefix等信息。注意编译器本应该是arm-linux-gcc,但是树莓派上的是arm-linux-gnueabihf-gcc,此处的gcc就是arm-linux-gnueabihf-gcc,只不过./configure不认识arm-linux-gnueabihf-gcc,树莓派把arm-linux-gnueabihf-gcc已经集成为gcc,此gcc非PC机上的gcc,一定区分开来。

sudo make

编译完成后生成两个可执行程序--”工具“:libtool、libtoolize。这里的libtool和libtoolize我们在生成动态库时需要的工具,所以需要拷贝到libjpeg库源码目录下:

sudo cp libtool libtoolize  ../libjpeg-6b


5.配置libjpeg库:

可以直接./configure,按照默认的安装路径去安装,生成的库和头文件也是按照默认路径。

我自己定义了安装路径,可以清晰查看到底生成什么文件,如下:

sudo  ./configure CC=gcc --prefix=/home/libjpeg-6b/jpeg-6b  --enable-shared  --enable-static

--prefix指定编译安装后生成的头文件和库存放的位置,就在jpeg-6b中创建了四个文件夹中,--enable-shared --enable-static分别指明生成动态库和静态库,生成库的时候就需要刚才libtool工具。


6.编译:

sudo make


7.安装:

sudo make install

安装完成后就能在jpeg-6b中生成的查看相应文件和库了。tree命令查看一下:


还没有完,一般嵌入式系统中编译生成可执行文件,不是静态链接生成的,因为静态链接库生成文件后文件会很大,所以一般采用动态链接,故需要把jpeg-6b/include中的头文件放入/usr/include中,jpeg-6b/lib中的库文件放入/usr/lib中,方便编程时调用。

sudo cp j*.h /usr/include

sudo cp lib* /usr/lib


8.最后可以在编程时使用库函数操作JPEG图片了,编译是需要加上-ljpeg


0 0
原创粉丝点击