MiniGUI的移植

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在AT91SAM9261EK上移植MiniGUI

当前流行的图形用户界面有MiniGUI、ucGUI、QT/Embedded等,ucGUI需要付费才能使用,QT/Embedded占用资源多,内存消耗大。MiniGUI是遵循GPL条款发布的自由软件,目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统,与其他GUI比,MiniGUI的特点是轻型、占用资源少。

交叉编译工具:arm-linux-gcc-4.3.2

宿主机:fedora7 ——linux

Linux kernel: 2.6.21

开发平台:A T91SAM9261EK

一、准备相关资源

Libminigui-1.6.10.tar.gz MiniGUI函数库源代码

Miniguires-1.6.10.tar.gz MiniGUI所使用的资源,包括基本字体、图标、位图等。

Mg-samples-str-1.6.10.tar.gz MiniGUI的演示程序。

Mde-1.6.10.tar.gz MiniGUI 图像界面应用程序

二、建立相关目录、解压缩文件

⑴mkdir /mtemp/minigui 存放源文件

⑵展开各个文件:

tar –xvzf libminigui-1.6.10.tar.gz

tar –xvzf miniguires-1.6.10.tar.gz

tar –xvzf mg-samples-str-1.6.10.tar.gz

tar –xvzf mde-1.6.10.tar.gz

在/mtemp/minigui/下面会生成四个对应的文件。

三、交叉编译MiniGUi

在宿主机上建立/usr/local/minigui用于存放编译安装生成的库文件

⑴libminigui的编译安装

cd libminigui-1.6.10

运行配置脚本文件:

./configure –prefix=/usr/local/minigui –build=i386-linux –target=arm-linux –host=arm-linux

执行完后生成Makefile文件,然后依次执行make make install命令,如果没有错误出现,那么成功,MiniGUI的函数库和头文件以及配置文件等资源被安装在/usr/local/minigui下面。函数库:/usr/local/minigui/lib

头文件:/usr/local/minigui/include

配置文件:/usr/local/minigui/etc

手册:/usr/local/minigui/man

安装后如下图所示:

⑵MiniGUI-res的编译安装

cd minigui-res-1.6.10

首先要对config.linux文件做一些修改。指明编译路径:

保存后直接make install,在指定的位置生成res文件夹

⑶mg-samples的编译安装

cd mg-samples-1.6.10

./configure --build=i386-linux --prefix=/usr/local/minigui --host=arm-linux --target=arm-linux LDFLAGS=-L/usr/local/minigui/lib CFLAGS=-I/usr/local/minigui/include

配置后,直接make即可,若干秒后编译完成,在res文件夹下面会生成一些例子和执行程序,如下所示:

至此,完成演示程序的编译。

在以上的编译过程中出现了如下两个错误,感觉很纳闷,对此太不熟悉了。

首先看第一个错误,在libminigui-1.6.10 make时出现如下错误

ial.c:309: error: 'InitRm9200Input' undeclared here (not in a function)

ial.c:309: error: 'TermRm9200Input' undeclared here (not in a function)

参照论坛中的意见,在ial.c里面加入extern 声明上面的两个函数,原因是这两个函数的原型在dummy.c里面,但是ial.c却不知道,理论上也应该在dummy.h中添加上述两个函数的声明。我没有添加。编译通过了。按道理这样的情况一般不会出现,可能是在第一步配置的时候漏掉了什么。我查看dummy.c文件,没有发现上面两个函数的原型。

第二个错误:在编译mg-samples-str的时候出现错误,如下:

/usr/local/minigui/lib/libminigui.so: undefined reference to `InitRm9200Input'

/usr/local/minigui/lib/libminigui.so: undefined reference to `TermRm9200Input'

解决这个问题颇费了周折,网上搜了一大圈圈也米有找到相关的办法,一时陷入了泥潭。偶尔想起来了,在编译libminigui之前曾对他进行配置过,就是通过vim configure打开的文件,将里面11201行的build_fxrm9200_ial_engine=”no”改为”yes”,不能确定,于是将其改回去,重新编译了libminigui,安装,没有出现第一个错误。再继续编译mg-samples,也没有第二个错误产生了。当时很兴奋,但是依然不明就里,很郁闷。先整起再说吧。

四、拷贝MiniGUI的资源到开发板中

相关文档
最新文档