minigui+tslib交叉编译终极教程.docx

上传人:b****4 文档编号:24159679 上传时间:2023-05-24 格式:DOCX 页数:10 大小:20.38KB
下载 相关 举报
minigui+tslib交叉编译终极教程.docx_第1页
第1页 / 共10页
minigui+tslib交叉编译终极教程.docx_第2页
第2页 / 共10页
minigui+tslib交叉编译终极教程.docx_第3页
第3页 / 共10页
minigui+tslib交叉编译终极教程.docx_第4页
第4页 / 共10页
minigui+tslib交叉编译终极教程.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

minigui+tslib交叉编译终极教程.docx

《minigui+tslib交叉编译终极教程.docx》由会员分享,可在线阅读,更多相关《minigui+tslib交叉编译终极教程.docx(10页珍藏版)》请在冰豆网上搜索。

minigui+tslib交叉编译终极教程.docx

minigui+tslib交叉编译终极教程

minigui+tslib交叉编译终极教程

2011-05-1213:

32230人阅读评论(0)收藏举报

第一部分:

minigui-1.3.3移植到SEP4020EVB详解

在这里只讲怎样将minigui-1.3.3移植到开发板EVB-SEP4020上去,在pc上安装minigui-1.3.3不用讲,这里我用到的交叉编译器是arm-linux-gcc3.4.1

MiniGUI的编译需要一些库文件,缺省我们的gcc基本上都有这些库文件,所以不需要安装,可是现在要交叉编译了,交叉编译器可是不带这些库文件的,所以我们得首先自己编译这些库文件装到交叉编译器中去。

注意一点:

库不一定要装最新的,库版本太新,MiniGUI有可能不认识,像jpeg库和ttf库就是这样,太新了反而用不了,所以要注意版本,以下的库都是我验证过可以和MiniGUI一起工作的,其它版本的库没试过,不保证能正确通过:

(1)首先安装zlib库,这个是后面的库的编译基础。

400多K,下载到目录/root/cross下

[user]#tarzxfzlib-1.2.3.tar.gz

由于zlib库的configure脚本不支持交叉编译选项,只好自己动用了,手动临时把gcc修改成指向我们的交叉编译器arm-linux-gcc

[Root]#cd/usr/bin

[Root]#mvgccgcc_back

[Root]#ln-s/usr/local/arm/3.4.1/bin/arm-linux-gcc./gcc

[Root]#mvldld_back

[Root]#ln-s/usr/local/arm/3.4.1/bin/arm-linux-ld./ld

OK,修改完成后回到/root/cross/zlib-1.2.3目录下

[user]#./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]目录下,千万不要装错目录了,不然后面会找不到这个库的

[user]#make

[Root]#makeinstall

若用gcc3.4.1是不会出现什么错误的,呵呵。

安装完后检查一下目录/usr/local/arm/3.4.1/arm-linux/[include,lib],假如include中没有zlib.h之类的头文件,lib中没有libz.so.1.2.3,那就自己手动拷到这些目录下去,记着拷的时候把所有的*.h都需要拷过去,在拷库的时候用cp–alibz.*/…./lib就行,要用上–a选项

记着把刚才改过的gcc再改回去,不然后面会出错的!

(一定记得改)

【root】#  cd  /usr/bin

【root】#  mv  gcc_back  gcc

【root】#  mv  ld_backld

(2)安装png库,这个是用来显示png图形的,MiniGUI里很多图都是png的,如果没有这个库,你的MiniGUI将无法正常工作,切记切记!

(png库)

还是那句话,库不要用最新的,最新的容易有问题,用这个老一点的就没问题了,呵

[root]#tarzxflibpng-1.2.18.tar.gz

[root]#cdlibpng-1.2.18

[root]#./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--host=arm-linuxprefix=/usr/local/arm/3.4.1/arm-linux

注意这边的配置:

①使用交叉编译器②安装目录③—host指定软将运行平台,不然终端

也会提示说叫你使用—host参数的。

#  make

#  make  install

安装完了,查看下/usr/local/arm/3.4.1/arm-linux/目录下的lib文件夹里是否有libpng.a,

libpng.so等文件和include文件夹里是否有png.h,pngconf.h文件以及libpng12文件夹。

(3)第三步:

安装jpeg库

在(jpeg库)下载到/root/cross/下面

#  cd  /root/cross/jpeg-6b

#  ./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--host=arm-linuxprefix=/usr/local/arm/3.4.1/arm-linux--enable-shared

在make之前注意:

从前面libpng-1.2.18的源码目录中把libtool拷贝过来,放在

/home/source/minigui/jpeg-6b目录下,否则会出现“make:

./libtool:

commandnotfound”错误。

另外要注意的是:

不能使用系统的libtool,因为这里要进行的是交叉编译。

#  make

下面创建一个目录,否则makeinstall的时候会报错。

#  mkdir  -p  /usr/local/arm/3.4.1/arm-linux/man/man1

#  make  install

安装完了,查看下/usr/local/arm/3.4.1/arm-linux/目录下的lib文件夹里是否有libjpeg.so,

libjpeg.so.62.0.0等文件和include文件夹里是否有jpeglib.h文件。

(4)第四步:

安装libttf库,这个是TrueType字体的支持库,用来显示文字的。

下载到/root/cross/下面

注意:

MiniGUI的文档说只支持1.3.1版本的ttf库,不要把版本弄错了

这个库装起来最麻烦,全部自己手动编译,安装,下面一步一步来做吧

[user]#tarzxffreetype-1.3.1.tar.gz//老一套

[user]#cdfreetype-1.3.1//进到目录里去

[user]#mkdir–p/root/cross/libttf/extend//自己另外建立一个目录

[user]#cp./lib/*./lib/arch/ansi/*/root/cross/libttf/  //把有用的东西拷出来

[user]#cp./lib/extend/*/root/cross/libttf/extend/    //把extend目录下的文件也拷出来

注意cp命令不要用–r选项,因为会把一些没用的东西出拷出来的

拷贝完成了,现在来自己手动编译了

[user]#cdlibttf(就是上面新建的一个目录)

[user]#arm-linux-gcc-c-fPIC-O2freetype.c//不要奇怪,对,我们只要编译这一个.c文件,因为它包括了其它所有的.c文件了,你可以自己查看它的内容

[user]#arm-linux-gcc-c-fPIC-O2-I./extend/*.c把extend下所有的.c文件全部编译

[user]#arm-linux-gcc--shared-olibttf.so*.o生成最后的动态链接库,OK了

此时应该在libttf下会出现一个libttf.so库文件

现在手动安装,得自己建立一下目录

[Root]mkdir-p/usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype

[Root]cp*.hextend/*.h/usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype

[Root]cplibttf.so/usr/local/arm/3.4.1/arm-linux/lib

安装库完成,哈!

(5)第五步:

编译安装miniGUI资源包minigui-res-1.3.3

  (miniGUI资源包)下载到/root/cross/目录下

#  cd/root/cross/minigui-res-1.3.3

#  makeinstall

  默认安装到/usr/local/lib/minigui/res目录。

切记后面一定要将此处的资源包拷过去

(6)第六步:

配置编译安装miniGUI

  (miniGUI库)  下载到/root/cross/目录下

MiniGUI1.3.3  版本在链接ljpeglpng时老是要链接/usr/lib  下的库,没办法,只好用

前面的方法,使用备份和软连接的方法。

#cd/usr/lib    

#mvlibjpeg.so  libjpeg.so_back  

#mvlibpng.so  libpng.so_back

#mvlibttf.so    libttf.so_back

#ln-s/usr/local/arm/3.4.1/arm-linux/lib/libttf.so./libttf.so

#ln -s  /usr/local/arm/3.4.1/arm-linux-gcc/lib/libpng.so  libpng.so

#ln -s  /usr/local/arm/3.4.1/arm-linux-gcc/lib/libjpeg.so  libjpeg.so

下面进行配置安装:

#cd/root/cross/libminigui-1.3.3

由于我使用的是ubuntu8.04,所以在这不能使用图形化配置界面makemenuconfig,因为这样在退出保存时会提示你无法保存,

在此不得不说用ubuntu开发搓!

若用fedora8就没这些问题了

没办法只好用字符界面一个个的配置了

#./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--host=arm-linux--disable-galqvfb--disable-galecoslcd--disable-vbfsupport--disable-ttfsupport--disable-type1supportprefix=/usr/local/arm/3.4.1/arm-linux

若是在fedora下开发可用makemenuconfig,具体配置如图:

在GAL engineOptions里  

(NEWGAL)GALanditsengines    

[*]     NEWGALengineonLinuxFrameBufferconsole    

[]     NEWGALengineonQtVirtualFrameBuffer     

[]     NEWGALengineoneCosLCDinterface    

[*]  DummyNEWGALengine  

[*]HaveconsoleonLinuxFrameBuffer    

 

在FontOption 里  

[*]Rawbitmapfont    

[]Varbitmapfont           // 这个选项去掉,否则,编译时老出错

[*]Incorefontsansserif    

[*]Incorefontcourier    

[*]Incorefontsymbol    

[*]Incorefontvgas    

[*]QtPrerenderedFont    

[]TrueTypefont       // 如果需要对这个字体支持,需要下载编译安装freetype库

[]AdobeType1font         // 如果需要对这个字体支持,需要下载编译安装freetype库

NOTE:

上面两个需要编译安装的字体库,在miniGUI官网上有的下。

 

在ImageOptions 里  

[*]IncludesSaveBitmap-relatedfunctions  

[]PCXfilesupport    

[]LBM/PBMfilesupport    

[]TGAfilesupport    

[*]GIFfilesupport    

[*]JPGfilesupport     // 前面我们已经编译安装了JPG库,所以这里我们可以选择此项

[*]PNGfilesupport   // 前面我们已经编译安装了PNG库,所以这里我们可以选择此项

 

在DevelopmentEnvironmentOption 里 

(Linux)Platform  

(arm-linux-gcc)Compiler    

(glibc)Libc             

---Installationoptions    

Pathprefix:

"/usr/local/arm/3.3.2/arm-linux" // 这里,我们把库装到交叉编译器的目录下  

---AdditonalCompilerFlags    

    CFLAGS:

""  

    LDFLAGS:

""  

其他的选项暂时不做改变,使用默认的配置即可

 

配置之后,进行编译安装:

#make    //  需要一点时间,耐心等待

#make  install

安装完了,查看下/usr/local/arm/3.4.1/arm-linux/目录下的lib文件夹里是否有

libminigui.so,libmgext.so,libvcongui.so等文件和include文件夹里是否有minigui文件夹(内

有minigui相关的头文件)。

好了,现在不要忘记把前面刚刚备份的改回来:

#cd/usr/lib    

#mvlibjpeg.so_back  libjpeg.so  

#mvlibpng.so_back  libpng.so

#mvlibttf.so_back  libttf.so

接着把上面编译的资源包/usr/local/lib/minigui/下的res目录拷到/usr/local/arm/3.4.1/arm-linux/lib/minigui/下!

 

 

(7)安装popt库,这个库在编译mde程序时需要使用,不然编译没法通过

http:

//gd.tuwien.ac.at/utils/rpm.org/dist/rpm-4.1.x/popt-1.7.tar.gz我是从这里下载的,下载到/root/cross

[user]#tarzxfpopt-1.7.tar.gz

[user]#cdpopt-1.7

[user]#./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--host=arm-linuxprefix=/usr/local/arm/3.4.1/arm-linux--enable-shared--enable-shared--enable-static

在此用ubuntu又编不过去,又报gettext的版本太低,叫我们去下载新的gettext,简直无法容忍了!

换到fedora8下一切顺利,再将其lib文件夹下的libpopt.a,libpopt.la,libpopt.so.0.0.0和include文件夹下的popt.h考回到ubuntu下的/usr/local/arm/3.4.1/arm-linux/相应目录下

[user]#make

[Root]#makeinstall

(8)编译综合例子mde-1.3.0

(综合例子程序)下载到下载到/root/cross

#  cd  /root/cross/mde-1.3.0

#  ./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--host=arm-linux  

#  make

一切很顺利,搞定了。

编到这步已经很不容易了

交叉编译环境设置好了!

(9)移植minigui到嵌入式文件系统中

前面是交叉编译的过程,现在把上面编的各种库都移到开发板的文件系统上去

我在/home/fp/nfs下建立我的嵌入式系统的根目录,在这里我采用的网络文件系统改起来比较方便,现在我需要把minigui的库文件放到里面去,

●库文件

把/usr/local/arm/3.4.1/arm-linux/lib中相应的库拷到/home/fp/nfs/lib目录下去

下面是我拷的库文件:

libjpeg.alibmgext-1.3.so.3libminigui.alibpng.so.2libttf.alibz.so

libjpeg.lalibmgext-1.3.so.3.0.0libminigui.lalibpng.so.2.1.0.10rc1libttf.solibz.so.1

libjpeg.solibmgext.alibminigui.solibpopt.alibvcongui-1.3.so.3libz.so.1.2.3

libjpeg.so.62libmgext.lalibm.solibpopt.lalibvcongui-1.3.so.3.0.0minigui

libjpeg.so.62.0.0libmgext.solibm.so.6libpopt.solibvcongui.ashared

libm-2.2.3.solibminigui-1.3.so.3libpng.alibpopt.so.0libvcongui.la

libm.alibminigui-1.3.so.3.0.0libpng.solibpopt.so.0.0.0libvcongui.so

其中一些.a的静态库是不需要拷过去的,另外要运行c程序还需要拷一些libc标准库进去,我图方便,直接将整个/usr/local/arm/3.4.1/arm-linux/lib考到/home/fp/nfs下面,呵,懒人的做法

OK,库文件准备完毕

●资源文件

下面把资源文件也拷过来,还记得吗,在前面搭建PC环境中讲过安装资源文件,它被装在了/usr/local/lib目录下,一个叫minigui的目录,我们要做的就是把它拷过来

[Root]#cp–r–a/usr/local/lib/minigui/home/fp/nfs/lib/minigui连目录一起拷过来,目录结构和主机一样

●配置文件

把配置文件也拷过来

[Root]#cp/usr/local/arm/3.4.1/arm-linux/etc/MiniGUI.cfg/home/fp/nfs/usr/local/etc/记住,保持目录结构的一致

修改MiniGUI.cfg,如下

[system]

#IALengine

ial_engine=dummy//这里修改,我用的是触摸屏,所以就用dummy肯定不会错

mdev=/dev/tp    //解摸屏

mtype=none

[fbcon]

defaultmode=240x320-16bpp//根据你的LCD大小自己设置,设置错误minigui就启动不了

还有一点就是要将文件中的所有/usr/local/替换为/

ial_engine一开始建议用dummy,先让minigui跑起来,以后再把触摸屏加进去,保证尽可能减少错误的发生

再将/root/cross/mde-1.3.0/下的文件夹都拷贝(每一个文件夹都是一个综合实例)到/home/fp/nfs/demo/下面

保存,退出。

OK,你的板子上的系统也搭建完毕了,现在来让真正的图形界面跑起来!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1