MiniGUICrossCompileGuideSEP4020.docx
- 文档编号:30499464
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:24
- 大小:87.53KB
MiniGUICrossCompileGuideSEP4020.docx
《MiniGUICrossCompileGuideSEP4020.docx》由会员分享,可在线阅读,更多相关《MiniGUICrossCompileGuideSEP4020.docx(24页珍藏版)》请在冰豆网上搜索。
MiniGUICrossCompileGuideSEP4020
交叉编译器:
arm-linux-gcc3.4.1
MiniGUI交叉编译过程------------------------------------------------------------------------------------------------
第一步:
首先建立新目录
[root@localhost/]#mkdir-p/root/cross
第二步:
安装zlib库,这个是后面的库的编译基础。
从400多K,下载到目录/root/cross下
[root@localhostcross]#tarzxvfzlib-1.2.3.tar.gz
由于zlib库的configure脚本不支持交叉编译选项,只好自己手动临时把gcc修改成指向我们的交叉编译器arm-linux-gcc
[root@localhostcross]#cd/usr/bin/
[root@localhostbin]#mvgccgcc_back
[root@localhostbin]#ln-s/usr/local/arm/3.4.1/bin/arm-linux-gcc./gcc
[root@localhostbin]#mvldld_back
[root@localhostbin]#ln-s/usr/local/arm/3.4.1/bin/arm-linux-ld./ld
修改完成后回到/root/cross/zlib-1.2.3目录下:
[root@localhostbin]#cd/root/cross/zlib-1.2.3
[root@localhostzlib-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@localhostzlib-1.2.3]#make
[root@localhostzlib-1.2.3]#makeinstall
安装完后检查一下目录/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@localhostzlib-1.2.3]#cd/usr/bin/
[root@localhostbin]#mvgcc_backgcc
mv:
是否覆盖“gcc”?
y
[root@localhostbin]#mvld_backld
mv:
是否覆盖“ld”?
y
第三步:
安装png库,这个是用来显示png图形的,MiniGUI里很多图都是png的,如果没有这个库,你的MiniGUI将无法正常工作。
从库)下载到/root/cross/下面
[root@localhostbin]#cd/root/cross/
[root@localhostcross]#tarxjvflibpng-1.2.18.tar.bz2
[root@localhostlibpng-1.2.18]#cdlibpng-1.2.18
[root@localhostlibpng-1.2.18]#./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--host=arm-linuxprefix=/usr/local/arm/3.4.1/arm-linux
[root@localhostlibpng-1.2.18]#make
[root@localhostlibpng-1.2.18]#makeinstall
安装结束后,查看下/usr/local/arm/3.4.1/arm-linux/目录下的lib文件夹里是否有libpng.a,libpng.so等文件和include文件夹里是否有png.h,pngconf.h文件以及libpng12文件夹。
第四步:
安装jpeg库
从库)下载到/root/cross/下面
[root@localhostlibpng-1.2.18]#cd/root/cross/
[root@localhostcross]#tarzxvfjpegsrc.v6b.tar.gz
[root@localhostcross]#cdjpeg-6b/
[root@localhostjpeg-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目录下,否则会出错。
[root@localhostjpeg-6b]#cp../libpng-1.2.18/libtool.
[root@localhostjpeg-6b]#make
注意:
在makeinstall之前需创建一个目录,否则makeinstall的时候会报错。
[root@localhostjpeg-6b]#mkdir-p/usr/local/arm/3.4.1/arm-linux/man/man1
[root@localhostjpeg-6b]#makeinstall
安装结束后,查看下/usr/local/arm/3.4.1/arm-linux/目录下的lib文件夹里是否有libjpeg.so,libjpeg.so.62.0.0等文件和include文件夹里是否有jpeglib.h文件
第五步:
安装libttf库,这个是TrueType字体的支持库,用来显示文字的。
从下载到/root/cross/下面,只支持1.3.1版本的ttf库:
注意:
MiniGUI的文档说只支持1.3.1版本的ttf库,不要把版本弄错了
[root@localhostjpeg-6b]#cd/root/cross/
[root@localhostcross]#tarzxvffreetype-1.3.1.tar.gz
[root@localhostcross]#cdfreetype-1.3.1
[root@localhostfreetype-1.3.1]#mkdir-p/root/cross/libttf/extend
[root@localhostfreetype-1.3.1]#cp./lib/*./lib/arch/ansi/*/root/cross/libttf/
cp:
略过目录“./lib/arch”
cp:
略过目录“./lib/extend”
[root@localhostfreetype-1.3.1]#cp./lib/extend/*/root/cross/libttf/extend/
[root@localhostfreetype-1.3.1]#cd../libttf/
[root@localhostlibttf]#arm-linux-gcc-c-fPIC-O2freetype.c
[root@localhostlibttf]#arm-linux-gcc-c-fPIC-O2-I./extend/*.c
[root@localhostlibttf]#arm-linux-gcc--shared-olibttf.so*.o
现在手动安装,得自己建立一下目录:
[root@localhostlibttf]#mkdir-p/usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype
[root@localhostlibttf]#cp*.hextend/*.h/usr/local/arm/3.4.1/arm-linux/include/freetype1/freetype
[root@localhostlibttf]#cplibttf.so/usr/local/arm/3.4.1/arm-linux/lib
安装库完成。
第六步:
编译安装miniGUI资源包minigui-res-1.3.3
从 (miniGUI资源包)下载到/root/cross/目录下。
[root@localhostlibttf]#cd/root/cross/
[root@localhostcross]#tarzxvfminigui-res-1.3.3.tar.gz
[root@localhostcross]#cdminigui-res-1.3.3
[root@localhostminigui-res-1.3.3]#makeinstall
注意:
在/usr/local/lib目录下生成一个minigui目录,切记后面一定要将此处的资源包拷过去
第七步:
配置编译安装MiniGUI
从 (miniGUI库) 下载到/root/cross/目录下:
MiniGUI1.3.3 版本在链接ljpeglpng时总是要链接/usr/lib 下的库,没办法,只好用前面的方法,使用备份和软连接的方法。
[root@localhostcross]#cd/usr/lib
[root@localhostlib]#mvlibjpeg.solibjpeg.so_back
[root@localhostlib]#mvlibpng.solibpng.so_back
[root@localhostlib]#cp/usr/local/arm/3.4.1/arm-linux/lib/libttf.so.
[root@localhostlib]#ln-s/usr/local/arm/3.4.1/arm-linux/lib/libpng.so./libpng.so
[root@localhostlib]#ln-s/usr/local/arm/3.4.1/arm-linux/lib/libjpeg.so./libjpeg.so
[root@localhostcross]#cd/root/cross/
[root@localhostcross]#tarzxvflibminigui-1.3.3.tar.gz
[root@localhostcross]#cdlibminigui-1.3.3
[root@localhostlibminigui-1.3.3]#makemenuconfig
在GALengineOptions里
(NEWGAL)GALanditsengines
[*]NEWGALengineonLinuxFrameBufferconsole
[]NEWGALengineonQtVirtualFrameBuffer
[]NEWGALengineoneCosLCDinterface
[*]DummyNEWGALengine
[*]HaveconsoleonLinuxFrameBuffer
在FontOption里
[*]Rawbitmapfont
[]Varbitmapfont
[*]Incorefontsansserif
[*]Inclorefontcourier
[*]Incorefontsymbol
[*]Incorefontvgas
[*]QtPrerenderedFont
[]TrueTypefont
[]AdobeTypelfont
NOTE:
上面朗格需要编译安装的字体库,在MiniGUI官网上有的下。
在ImageOptions里
[*]IncludeSaveBitmap-relatedfunctions
[]PCXfilesupport
[]LBM/PBMfilesupport
[]TGAfilesupport
[*]GIFfilesupport
[*]JPGfilesupport
[*]PNGfilesupport
在DevelopmentEnvironmentOption里
(Linux)Platform
(arm-linux-gcc)Compiler
(glibc)Libc
--Installationoptions
Pathprefix:
”/usr/local/arm/3.4.1/arm-linux”
配置之后,进行编译安装:
[root@localhostlibminigui-1.3.3]#make
[root@localhostlibminigui-1.3.3]#makeinstall
安装结束后,查看下/usr/local/arm/3.4.1/arm-linux/目录下的lib文件夹里是否有libminigui.so,libmgext.so,libvcongui.so等文件和include文件夹里是否有minigui文件夹(内有minigui相关的头文件)。
注意:
现在不要忘记把前面刚刚备份的改回来。
[root@localhostlibminigui-1.3.3]#cd/usr/lib
[root@localhostlib]#mvlibjpeg.so_backlibjpeg.so
mv:
是否覆盖“libjpeg.so”?
y
[root@localhostlib]#mvlibpng.so_backlibpng.so
mv:
是否覆盖“libpng.so”?
y
[root@localhostlib]#mvlibttf.so_backlibttf.so
mv:
是否覆盖“libttf.so”?
y
注意:
现在把上面编译的资源包/usr/local/lib/minigui/下的res目录拷到/usr/local/arm/3.4.1/arm-linux/lib/minigui/下!
!
!
!
!
!
!
!
!
!
!
!
[root@localhostlibminigui-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@localhostlibminigui-1.3.3]#cd/root/cross/
[root@localhostcross]#tarzxvfpopt-1.7.tar.gz
[root@localhostcross]#cdpopt-1.7
[root@localhostpopt-1.7]#./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
[root@localhostpopt-1.7]#make
[root@localhostpopt-1.7]#makeinstall
安装结束后,查看下/usr/local/arm/3.4.1/arm-linux/目录下的lib文件夹里是否有libpopt.a,libpopt.la,libpopt.so.0.0.0等文件和include文件夹里是否有popt.h文件。
第九步:
编译综合例子mde-1.3.0
从
[root@localhostpopt-1.7]#cd/root/cross/
[root@localhostcross]#tarzxvfmde-1.3.0.tar.gz
[root@localhostcross]#cdmde-1.3.0
[root@localhostmde-1.3.0]#./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--host=arm-linux
[root@localhostmde-1.3.0]#make
第十步:
移植MiniGUI到嵌入式文件系统中
1)库文件
把/usr/local/arm/3.4.1/arm-linux/lib中相应的库拷到nfs/lib目录下去,可以直接将整个/usr/local/arm/3.4.1/arm-linux/lib拷到nfs下面:
[root@localhostcross]#cp-ar/usr/local/arm/3.4.1/arm-linux/lib/nfs
去掉其中.a文件:
[root@localhostcross]#rm-rf/nfs/lib/*.a
OK,库文件准备完毕。
2)资源文件
下面把资源文件也拷过来,在前面搭建PC环境中讲过安装资源文件,它被装在了/usr/local/lib目录下,一个叫minigui的目录,我们要做的就是把它拷过来:
[root@localhostcross]#cp-ar/usr/local/lib/minigui/nfs/lib/minigui
3)配置文件
将配置文件也拷过来:
因为/nfs/usr下没有目录,所以我们需新建目录:
[root@localhostcross]#mkdir-p/nfs/usr/local/etc
[root@localhostcross]#cp/usr/local/arm/3.4.1/arm-linux/etc/MiniGUI.cfg/nfs/usr/local/etc/
[root@localhostcross]#cd/nfs/usr/local/etc/
修改MiniGUI.cfg
[root@localhostetc]#geditMiniGUI.cfg
[system]
#IALengine
ial_engine=dummy//这里修改,我用的是触摸屏,所以就用dummy肯定不会错
mdev=/dev/tp //触摸屏
mtype=none
[fbcon]
defaultmode=320x240-16bpp//根据你的LCD大小自己设置
注意:
需将文件中的所有/usr/local/替换为/
ial_engine一开始建议用dummy,先让minigui跑起来,以后再把触摸屏加进去,保证尽可能减少错误的发生再将/root/cross/mde-1.3.0/下的文件夹都拷贝(每一个文件夹都是一个综合实例)到nfs/demo/下面:
[root@localhostetc]#mkdir-p/nfs/demo
[root@localhostetc]#cp-ar/root/cross/mde-1.3.0/nfs/demo/
保存,退出。
OK,你的板子上的系统也搭建完毕了,现在可以在屏幕上显示图片了,但是还不可以用触摸屏进行控制。
tslib-1.3.3移植到SEP4020-------------------------------------------------------------------------------------
以上已经成功移植了MiniGUI,由于不能使用触摸屏来进行控制,这次将继续上次的移植。
往4020上移植tslib大概方法是通过tslib来构建MiniGUI的输入引擎。
tslib是一个用于触摸屏设备的函数库,通过这样一个函数库,可以将编程者从繁琐的数据处理中解脱出来。
因为触摸屏的坐标和液晶显示屏之间的坐标并不是一一对应的,所以,要让从触摸屏上得到的坐标正确转换为液晶显示屏上的坐标,需要经过一个转换过程。
除此之外,tslib还以插件的形式提供了一些附加的功能,比如去除点击触摸屏时的抖动等
第十五步:
下载源文件并解压
从
[root@localhostcross]#tarxjvftslib-1.3.tar.bz2
[root@localhostcross]#cdtslib-1.3
第十六步:
针对底层驱动修改配置信息
[root@localhosttslib-1.3]#./autogen.sh(这步会生产configure文件)
[root@localhosttslib-1.3]#./configureCC=arm-linux-gcc--build=i686-pc-linux--target=arm-linux--hos
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MiniGUICrossCompileGuideSEP4020