MiniGUI 1.3.3 移植详解 下载本文

MiniGUI 1.3.3 移植详解

Posted on 2009-08-17 11:03 想搞技术的草根 阅读(587) 评论(0) 编辑 收藏

MiniGUI 1.3.3 移植详解

最近移植了 MiniGUI 1.3.3 到一个开发板上,中间遇到许多问题,在论坛上发问题,结果也没多少人回我,就算偶尔有回的,基本上回答也没有什么用,网上找不到一个完整的移植文章,所以 就决定把自己这次移植摸出来的一些方法写出来,给像我一样的小菜鸟做个参考吧。本文不教你怎么写驱动,只是教怎么样在最短的时候在你的PC机上搭建起开发 环境,同时在你的板子上跑起MiniGUI 来,这样你就可以在PC上开发好程序,调试完毕,然后交叉编译一下,直接Copy到板子上就可以了。 首先,你需要下载的MiniGUI 的包:

http://www.minigui.com/download/libminigui-1.3.3.tar.gz http://www.minigui.com/download/minigui-res-1.3.3.tar.gz

这两个包的下载需要你在www.minigui.com 上注册过才可以下载,免费注册的,自己去下吧 http://www.minigui.com/downloads/minigui13/mde-1.3.0.tar.gz 图形界面程序 http://www.minigui.com/downloads/minigui13/mg-samples-1.3.0.tar.gz 一些小例子 好,首先就下载这几个包吧,后面还有需要下载的包,后面再说 1.PC环境的搭建

首先你需要一个 Linux 环境,我安装的是 RedHat 9.0 安装时记着选 everything ,这样可以避免到时候编译少了东西。这里搭建的环境是让 MiniGUI 在你的 PC 上可以跑起来,这样以后你开发程序就可以只在 PC 上开发,调试好,最后交叉编译一下放到板子上就行了。后面会讲怎么为板子编译MiniGUI ,耐心的看吧:)

首先建立自己的开发目录 [Root]# mkdir /opt [Root]# cd /opt

[Root]# mkdir st2410 //这个是我的板子, [Root]# chmod 777 st2410 //给一般用户操作权限

[user]# cd /opt/st2410 //进到目录中去,在这个目录下工作,用普通用户来工作

把 libminigui-1.3.3.tar.gz 解开

[user]# tar zxf libminigui-1.3.3.tar.gz [user]# tar zxf minigui-res-1.3.3.tar.gz

编译 libminigui ,这个是 minigui 运行所必需的库文件,必须编译成功 [user]# cd libminigui-1.3.3

[user]# ./configure //最简单的编译方式,让它自己去配置 ,这里采用缺省的Thread 模式而不是Lite模式,因为这种方式在 PC 机上使用最方便,后面移到板子上再改成 Lite 模式即可 注意屏幕上的输出,特别是下面几条

checking for FrameBuffer console support... yes checking for pthread library... yes

checking for TT_FreeType_Version in -lttf... yes checking for T1_InitLib in -lt1... no

checking for jpeg_std_error in -ljpeg... yes checking for png_check_sig in -lpng... yes

其中 –lttf –lpng 必须是 yes ,不然后面你的程序肯定会有问题,如果这里不是 yes 的话,肯定是你的 Redhat 9 安装不对,告诉过你安装时选 everything ,你选了吗???

其中 ttf 库是对 TrueType 字体的支持,png 库是对 png 图形的支持,MiniGui 里都需要这两个,在后面为板子交叉编译的时候也需要这两个,不然你的程序跑不起来,切记切记。 好了,现在通过了,下面是编译了 [user]# make

接来来就是漫长的等待了,让它慢慢的编译吧,呵

[user]# su //切到 Root 用户权限下,不然安装时没法把文件写到你的 /usr/local 目录下 [Root]# make install

好了,库安装完毕,下面是安装资源

[Root]# cd /opt/st2410/minigui-res-1.3.3 [Root]# make install

OK,基本的安装完成了,现在检查一下

看看在你的目录 /usr/local/lib 下是不是有以下文件 libmgext-1.3.so.3 -> libmgext-1.3.so.3.0.0 libmgext-1.3.so.3.0.0 libmgext.a libmgext.la

libmgext.so -> libmgext-1.3.so.3.0.0

libminigui-1.3.so.3 -> libminigui-1.3.so.3.0.0 libminigui-1.3.so.3.0.0 libminigui.a libminigui.la

libminigui.so -> libminigui-1.3.so.3.0.0 libvcongui-1.3.so.3 -> libvcongui-1.3.so.3.0.0 libvcongui-1.3.so.3.0.0 libvcongui.a libvcongui.la

libvcongui.so -> libvcongui-1.3.so.3.0.0

里面还有一个目录 minigui ,可以进到里面去看,分别为 minigui/res/ [bmp , cursor,icon ,…..] 好几个目录,里面有相应的文件

检查 /usr/local/include 里面是不是多了一个 minigui 目录,/usr/local/include/minigui 时面好多的 .h 文件,如下:

common.h control.h endianrw.h fixedmath.h mgext.h mywindows.h vcongui.h config.h dti.c filedlg.h gdi.h minigui.h skin.h window.h 如果这里检查没有这些东西的话,那你前面的步骤肯定有问题,自己检查一下吧。

首先,修改你的 /etc/ld.so.conf 文件,在里面最后新加入一行 /usr/local/lib 然后执行 [Root]# ldconfig OK !

[Root]# vi /usr/local/etc/MiniGUI.cfg 在里面找到 [system] # GAL engine #gal_engine=fbcon

gal_engine=qvfb //这里修改 # IAL engine

#ial_engine=console

ial_engine=qvfb //这里修改 mdev=/dev/mouse mtype=IMPS2 [fbcon]

defaultmode=1024x768-16bpp [qvfb]

defaultmode=640x480-16bpp //这里修改 display=0 保存一下,OK了!

现在你需要安装一个 qvfb ,因为 Redhat 9 里面没有,从下面地址下载 http://www.minigui.com/downloads/dep-libs/qvfb-1.0.tar.gz 老方法:

[user]# tar zxf qvfb-1.0.tar.gz [user]# cd qvfb-1.0 [user]# ./configure [user]# make [user]# make install

在这个过程中如果出现 error while loading shared libraries: libqt-mt.so.3: cannot open shared object file

说 明你的系统少了 libqt-mt.so.3 这个库,还是回去检查一下,你安装时Redhat 时是否选了 everything ,或者在实际操作的过程中,这个库有可以被误删除掉,我就出现过,这时候你可以 google 一下 ,输入 libqt-mt.so.3 redhat 9 ,应该就可以搜到相应的 rpm 包,安装时 [root]# rpm –i --force [你的包名] 就OK了