如何编译DirectFB?

    随着网络的迅速发展,并不断在家庭领域中扩展,使消费电子、计算机、通信(3C)一体化趋势日趋明显,嵌入式系统成为研究与应用的热点。嵌入式实时Linux操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量,如今随着WAP手机、手持终端设备、机顶盒、及DVD/VCD播放机迅速普及,用户对这些手持式设备的GUI提出了更高的要求,希望能看到像PC机才拥有的华丽美观的GUIGUI已经成为了人与机器沟通的桥梁,嵌入式系统对GUI的需求越来越高,而这一切均要求有一个轻型、占用资源少、高性能、高可靠、可配置及美观的GUI支持。

GUI系统涉及很多图像运算,比如画点、画线、填充、透明度处理、平滑度处理、层的叠加、字体处理、贴图等等。如果这些运算都由CPU来处理,那这将是对CPU的一个很大的负载。

近两年嵌入式设备主芯片越来越多的嵌入了2D/3D加速功能,由此软件可以搭建越来越复杂、炫酷、先进的桌面系统,如Qt/Android等。这些加速硬件,通常也因其是否拥有私有内存、是否支持3D、加速接口是否可编程等特性而分为三六九等。硬件的加速功能如果要在目标GUI系统中跑起来,还得需要一些软件中间层为不同的硬件加速提供同一的接口,并且为上层GUI提供服务。

DirectFB就是这样一个软件中间层,专门针对Linux图形库设计的图形加速中间层。它的上层直接面向图形库比如QTGUI,提供如显示、画图、输入设备控制等服务,的下层直接面向GFX加速硬件,要求硬件驱动实现全部或部分预定的画图函数。

DirectFB是一个轻量级的提供硬件图形加速,输入设备处理特性和抽象的图形库,它集成了支持半透明的视窗系统以及在LinuxFramebuffer驱动之上的多层显示。它是一个用软件封装当前硬件无法支持的图形算法来完成硬件加速的层。

DirectFB是为嵌入式系统而设计。它是以最小的资源开销来实现最高的硬件加速性能。

 

我们来看一下在嵌入式系统上编译DirectFB:

 

一、 编译zlib1.2.8.tar.gz
1tar xvf zlib1.2.8.tar.gz
2cd zlib-1.2.8
3CC=arm-none-linux-gnueabi-gcc ./configure --prefix=/home/when/work/board/1808/jcbyq/arm-2007q1/arm-none-linux-gnueabi(路径根据自己的编译器路径修改)
4make && make install

二、 编译libpng-1.2.10.tar.bz2
1tar xvf libpng-1.2.10.tar.bz2
2cd libpng-1.2.10
3CC=arm-none-linux-gnueabi-gcc  ./configure  --host=arm-none-linux-gnueabi  --prefix=/usr/local/1808/libpng --enable-shared prefix中的路径都要自己手动创建。以下同上)
4make && make install

三、 编译freetype-2.7.1.tar.gz
1tar xvf freetype-2.7.1.tar.gz
2cd freetype-2.7.1
3CC=arm-none-linux-gnueabi-gcc  ./configure  --host=arm-none-linux-gnueabi  --prefix=/usr/local/1808/freetype --without-zlib
4make && make install

四、 编译 DirectFB-1.4.3.tar.gz
1tar xvf DirectFB-1.4.3.tar.gz
2cd DirectFB-1.4.3
3cp /usr/local/1808/libpng/include/* include/ -r

4cp /usr/local/1808/freetype/include/freetype2/* include/ -r
5CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi --prefix=/usr/local/1808/dfb --with-gfxdrivers=none --with-inputdrivers=all --enable-png --disable-tiff --enable-sdl=no --enable-gif=no --disable-x11
6make && make install

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章