arm-linux-gcc 3.4.1 移植minigui1.3.3 轉帖

MiniGUI交叉編譯過程------------------------------------------------------------------------------------------------

第一步首先建立新目錄

[root@localhost /]# mkdir -p /root/cross

第二步安裝 zlib 庫,這個是後面的庫的編譯基礎

http://www.zlib.net/zlib-1.2.3.tar.gz 400K,下載到目錄 /root/cross

[root@localhost cross]# tar zxvf zlib-1.2.3.tar.gz

由於 zlib 庫的configure 腳本不支持交叉編譯選項,只好自己手動臨時把 gcc 修改成指向我們的交叉編譯器 arm-linux-gcc

[root@localhost cross]# cd /usr/bin/

[root@localhost bin]# mv gcc gcc_back

[root@localhost bin]# ln -s /usr/local/arm/3.4.1/bin/arm-linux-gcc ./gcc

[root@localhost bin]# mv ld ld_back

[root@localhost bin]# ln -s /usr/local/arm/3.4.1/bin/arm-linux-ld ./ld

修改完成後回到 /root/cross/zlib-1.2.3 目錄下:

[root@localhost bin]# cd /root/cross/zlib-1.2.3

[root@localhost zlib-1.2.3]# ./configure --prefix=/usr/local/arm/3.4.1/arm-linux --shared

注意這裏配置指向/usr/local/arm/3.4.1/arm-linux  目錄,會自動安裝在 /usr/local/arm/3.4.1/arm-linux / [include,lib] 目錄下。

[root@localhost zlib-1.2.3]# make

[root@localhost zlib-1.2.3]# make install

安裝完後檢查一下目錄 /usr/local/arm/3.4.1/arm-linux / [include,lib] ,假如 include 中沒有 zlib.h 之類的頭文件,lib 中沒有 libz.so.1.2.3 ,那就自己手動拷到這些目錄下去,記着拷的時候把所有的 *.h 都需要拷過去,在拷庫的時候用 cp –a libz.* /…./lib 就行,要用上 –a 選項

注意記着把剛纔改過的 gcc 再改回去,不然後面會出錯的!!!!!(一定記得改)

[root@localhost zlib-1.2.3]# cd /usr/bin/

[root@localhost bin]# mv gcc_back gcc

mv:是否覆蓋“gcc? y

[root@localhost bin]# mv ld_back ld

mv:是否覆蓋“ld? y

第三步安裝 png 庫,這個是用來顯示 png 圖形的,MiniGUI 裏很多圖都是 png 的,如果沒有這個庫,你的 MiniGUI 將無法正常工作。

http://prdownloads.sourceforge.net/libpng/libpng-1.2.18.tar.bz2?downloadpng 庫)下載到/root/cross/下面

[root@localhost bin]# cd /root/cross/

 [root@localhost cross]# tar xjvf libpng-1.2.18.tar.bz2

[root@localhost libpng-1.2.18]# cd libpng-1.2.18

[root@localhost libpng-1.2.18]# ./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux prefix=/usr/local/arm/3.4.1/arm-linux

[root@localhost libpng-1.2.18]# make

[root@localhost libpng-1.2.18]# make install

安裝結束後,查看下/usr/local/arm/3.4.1/arm-linux/目錄下的 lib 文件夾裏是否有 libpng.alibpng.so 等文件和 include 文件夾裏是否有 png.hpngconf.h 文件以及 libpng12 文件夾。

第四步安裝 jpeg

http://download.enet.com.cn/html/242232006010901.htmljpeg 庫)下載到/root/cross/下面

[root@localhost libpng-1.2.18]# cd /root/cross/

[root@localhost cross]# tar zxvf jpegsrc.v6b.tar.gz

[root@localhost cross]# cd jpeg-6b/

[root@localhost jpeg-6b]# ./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux prefix=/usr/local/arm/3.4.1/arm-linux --enable-shared

注意 make 之前,需從前面 libpng-1.2.18 的源碼目錄中把 libtool 拷貝過來,放在/home/source/minigui/jpeg-6b目錄下,否則會出錯。

[root@localhost jpeg-6b]# cp ../libpng-1.2.18/libtool .

[root@localhost jpeg-6b]# make

注意make install 之前需創建一個目錄,否則 make install 的時候會報錯。

[root@localhost jpeg-6b]# mkdir -p /usr/local/arm/3.4.1/arm-linux/man/man1

[root@localhost jpeg-6b]# make install

安裝結束後,查看下/usr/local/arm/3.4.1/arm-linux/目錄下的 lib 文件夾裏是否有 libjpeg.solibjpeg.so.62.0.0 等文件和include 文件夾裏是否有 jpeglib.h 文件

第五步安裝 libttf 庫,這個是 TrueType 字體的支持庫,用來顯示文字的。

http://nchc.dl.sourceforge.net/sourceforge/freetype/freetype-1.3.1.tar.gz 下載到/root/cross/下面,只支持 1.3.1 版本的 ttf 庫:

注意MiniGUI 的文檔說只支持 1.3.1 版本的 ttf 庫,不要把版本弄錯了

[root@localhost jpeg-6b]# cd /root/cross/

[root@localhost cross]# tar zxvf freetype-1.3.1.tar.gz

[root@localhost cross]# cd freetype-1.3.1

[root@localhost freetype-1.3.1]# mkdir -p /root/cross/libttf/extend

[root@localhost freetype-1.3.1]# cp ./lib/* ./lib/arch/ansi/* /root/cross/libttf/

cp: 略過目錄 “./lib/arch

cp: 略過目錄 “./lib/extend

[root@localhost freetype-1.3.1]# cp ./lib/extend/* /root/cross/libttf/extend/

[root@localhost freetype-1.3.1]# cd ../libttf/

[root@localhost libttf]# arm-linux-gcc -c -fPIC -O2 freetype.c

[root@localhost libttf]# arm-linux-gcc -c -fPIC -O2 -I./ extend/*.c

[root@localhost libttf]# arm-linux-gcc --shared -o libttf.so *.o

現在手動安裝,得自己建立一下目錄:

[root@localhost libttf]# mkdir -p /usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype

[root@localhost libttf]# cp *.h extend/*.h /usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype

[root@localhost libttf]# cp libttf.so /usr/local/arm/3.4.1/arm-linux/lib

安裝庫完成。

 

第六步編譯安裝 miniGUI 資源包 minigui-res-1.3.3

http://www.minigui.com/download/minigui-res-1.3.3.tar.gz   miniGUI資源包)下載到/root/cross/目錄下。

[root@localhost libttf]# cd /root/cross/

[root@localhost cross]# tar zxvf minigui-res-1.3.3.tar.gz

[root@localhost cross]# cd minigui-res-1.3.3

[root@localhost minigui-res-1.3.3]# make install

注意/usr/local/lib目錄下生成一個minigui目錄,切記後面一定要將此處的資源包拷過去

第七步配置編譯安裝 MiniGUI

http://www.minigui.com/download/libminigui-1.3.3.tar.gz  miniGUI庫)  下載到/root/cross/目錄下:

MiniGUI 1.3.3  版本在鏈接 ljpeg lpng 時總是要鏈接 /usr/lib  下的庫,沒辦法,只好用前面的方法,使用備份和軟連接的方法。

[root@localhost cross]# cd /usr/lib

[root@localhost lib]# mv libjpeg.so libjpeg.so_back

[root@localhost lib]# mv libpng.so libpng.so_back

[root@localhost lib]# cp /usr/local/arm/3.4.1/arm-linux/lib/libttf.so .

[root@localhost lib]# ln -s /usr/local/arm/3.4.1/arm-linux/lib/libpng.so ./libpng.so

[root@localhost lib]# ln -s /usr/local/arm/3.4.1/arm-linux/lib/libjpeg.so ./libjpeg.so

[root@localhost cross]# cd /root/cross/

[root@localhost cross]# tar zxvf libminigui-1.3.3.tar.gz

[root@localhost cross]# cd libminigui-1.3.3

[root@localhost libminigui-1.3.3]# make menuconfig

GAL engine Options

(NEWGAL)GAL and its engines

[*] NEWGAL engine on Linux FrameBuffer console

[ ]NEWGAL engine on Qt Virtual FrameBuffer

[ ]NEWGAL engine on eCos LCD interface

[*] Dummy NEWGAL engine

[*]Have console on Linux FrameBuffer

 

Font Option

[*]Raw bitmap font

[ ] Var bitmap font

[*]Incore font sansserif

[*]Inclore font courier

[*]Incore font symbol

[*]Incore font vgas

[*]Qt Prerendered Font

[ ] TrueType font

[ ]Adobe Typel font

NOTE:上面朗格需要編譯安裝的字體庫,在MiniGUI官網上有的下。

 

Image Options

[*]Include SaveBitmap-related functions

[ ] PCX file support

[ ] LBM/PBM file support

[ ]TGA file support

[*]GIF file support

[*]JPG file support

[*]PNG file support

 

Development EnvironmentOption

(Linux)Platform

(arm-linux-gcc)Compiler

(glibc)Libc

--Installation options

Path prefix:”/usr/local/arm/3.4.1/arm-linux”

配置之後,進行編譯安裝:

[root@localhost libminigui-1.3.3]# make

[root@localhost libminigui-1.3.3]# make install

安裝結束後,查看下/usr/local/arm/3.4.1/arm-linux/目錄下的 lib 文件夾裏是否有libminigui.so libmgext.so libvcongui.so 等文件和 include 文件夾裏是否有 minigui 文件夾 (內有 minigui 相關的頭文件)。

注意現在不要忘記把前面剛剛備份的改回來。

[root@localhost libminigui-1.3.3]# cd /usr/lib

[root@localhost lib]# mv libjpeg.so_back libjpeg.so

mv:是否覆蓋“libjpeg.so? y

[root@localhost lib]# mv libpng.so_back libpng.so

mv:是否覆蓋“libpng.so? y

[root@localhost lib]# mv libttf.so_back libttf.so

mv:是否覆蓋“libttf.so? y

注意現在把上面編譯的資源包/usr/local/lib/minigui/下的res目錄拷到/usr/local/arm/3.4.1/arm-linux/lib/minigui/下!!!!!!!!!!!!

[root@localhost libminigui-1.3.3]# cp -a /usr/local/lib/minigui/res/ /usr/local/arm/3.4.1/arm-linux/lib/minigui/

 

第八步安裝 popt 庫,這個庫在編譯 mde 程序時需要使用,不然編譯沒法通過

http://gd.tuwien.ac.at/utils/rpm.org/dist/rpm-4.1.x/popt-1.7.tar.gz 我是從這裏下載的,下載到/root/cross

[root@localhost libminigui-1.3.3]# cd /root/cross/

[root@localhost cross]# tar zxvf popt-1.7.tar.gz

[root@localhost cross]# cd popt-1.7

[root@localhost popt-1.7]# ./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux prefix=/usr/local/arm/3.4.1/arm-linux --enable-shared --enable-shared --enable-static

[root@localhost popt-1.7]# make

[root@localhost popt-1.7]# make install

安裝結束後,查看下/usr/local/arm/3.4.1/arm-linux/目錄下的 lib 文件夾裏是否有 libpopt.alibpopt.lalibpopt.so.0.0.0 等文件和include 文件夾裏是否有 popt.h文件。

 

第九步編譯綜合例子 mde-1.3.0

http://www.minigui.com/downloads/minigui13/mde-1.3.0.tar.gz(綜合例子程序)下載到下載到/root/cross

[root@localhost popt-1.7]# cd /root/cross/

[root@localhost cross]# tar zxvf mde-1.3.0.tar.gz

[root@localhost cross]# cd mde-1.3.0

[root@localhost mde-1.3.0]# ./configure CC=arm-linux-gcc --build=i686-pc-linux --target=arm-linux --host=arm-linux

[root@localhost mde-1.3.0]# make

發佈了11 篇原創文章 · 獲贊 22 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章