如何編譯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

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