在VMware上的FC4中成功安装MiniGUI1.3.3和成功运行sample过程详解

 

  本人在闲余时,想对MiniGUI做一点研究,希望能对自己所从事的项目有所帮助,所以就上网上找了一些资料,由于大部分都是针对MiniGUI 1.3.3 的,本人为了少走弯路,先只是想了解一下MiniGUI,对其有一个感性的认识,所以也就下了这个版本做练习。

 

  这里主要是对配置和编译过程中自己碰到的一些问题进行总结(大部分知识来源于网络以及自己的亲身验证)。

 

本文使用的文件请到以下地址下载:

http://www.minigui.org/downloads/minigui-1.3.x/

 

MiniGUI图形库:libminigui- 1.3.3 .tar.gz

MiniGUI资源包,里面包含字体、图标等资源:minigui-res-1.3.tar.gz

MiniGUI v 1.3.3 示例程序:mg-samples- 1.3.0 .tar.gz

 

  另外,我们还需要下载QVFBQt Virtual FrameBuffer),它可以在PC上模拟显示屏,方便调试MiniGUI应用程序。

MiniGUI官网上对QVFB进行了打包,可以直接下载:

http://www.minigui.com/fileadmin/download/qvfb-1.0.tar.gz

 

文件如下:

minigui-libminigui-1.3.3.tar.gz

libminigui-1.3.3/

minigui-res-1.3.3.tar.gz

minigui-res-1.3.3/

mg-samples-1.3.0.tar.gz

mg-samples-1.3.1/   (解出的不是1.3.0)

qvfb-1.0.tar.gz

qvfb-1.0/

 

  好了,巧妇难为无米之炊,现在我们有了源料了,让我们开始吧!

 

  首先把我使用的linux环境和版本跟大家介绍一下:

      虚拟机:VMware Workstaticon 5.5.3 build-34685

                Linux:2.6.11-1.1369_FC4(在安装操作系统时要选择“完全安装”,要不会有麻烦的,反正我是完全安装了)

       本文使用的绝对路径(文件都保存在此路径下):/opt/st5202     (我用st5202文件夹为工作目录)

 

进入文件夹:

#cd libminigui- 1.3.3 /

 

开始配置(默认配置我没有编译通过)

#make menuconfig

 

在这里我们需要改一处:

Font options ——>(去掉第二项)

 

如果你想知道为什么要去掉第二项目,呵呵,那请用默认配置编译一下吧!

(提示:会有关于'var_bitmap_font_ops'方面的错误

 

OK,保存,

如果对配置的选项不是很清楚,可以查看文档《Linux/uClinux + MiniGUI: 嵌入式系统开发原理、工具及过程》的附录B部分。

 

开始编译:

#make

 

我在make编译时出错了:

出错文件是位于ext/control/下的grid.c,到网上查了一下,可能是编译器版本太高了,才会出现这样的错误。

 

解决方法:

grid.c中所有类似这样的代码:

      (PGRIDCOLHDR)pCell1->pRowHdr = pRowHdr;

      (PGRIDCOLHDR)pCell1->pColHdr = pCol1;

将前面的强制类型转换去掉就可以编译通过了。

(编译出错后会有提示说那行出错,把那几行的强制类型转换全去掉)

 

好了,重新make编译,呀,我的怎么又出错了呀:

freetype.c:809: error: static declaration of 'freetype_font_ops' follows non-static doclaration

freetype.h:62: error:previous declaration of 'freetype_font_ops' was here

... ...

 

这次去网上可没查到,干脆,一不做二不休,干它一票(当前在libminigui- 1.3.3 目录下):

#cd src/font/

#vim freetype.c

直接把809行的static去掉,再编译,呵呵,终于过了!(我想minigui的开发者不会出这种bug吧,不知道是什么原因,反正是测试先用着吧)

 

编译成功后运行:

#make install

进行libminigui库的安装,默认配置下将安装到/usr/local/目录下,可以在make menuconfig中修改“Development environment options”中的“Path prefix”来指定安装目录。如果使用其他目录,则需要注意相关的目录必须添加进环境PATH变量中,否则在编译MiniGUI应用程序时会出现找不到包含文件等错误信息。

 

接着要运行ldconfig加载新生成的链接库,否则将会出现类似找不到“libminigui-1.3.so .3 的错误消息。

 

修改你的 /etc/ld.so.conf 文件,在里面最后新加入一行 /usr/local/lib

然后执行:

# ldconfig

OK !

 

接着安装MiniGUI的资源包:

#cd minigui-res- 1.3.3 /

#make install

 

安装qvfb

#cd qvfb-1.0/

#./configure

#make

哎,怎么又出错了呀,搞点东东怎么这么费事呀,不过还好,有解决的办法,是关于pthread_kill_other_threads_np问题的,说:gcc  -g -O2 -Wall -Wstrict-prototypes -pipe -D_REENTRANT   -o helloworld  helloworld.o  -lminigui -lpthread -lc -lm -lpng –ljpeg

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

又去网上查,一查,搞定!

人家有三种方法呢:

解决方法主要有以下3种:

FC 4 中的 pthread 库升级造成的。

 

1 阅读 FC 4 Release Notes,其中有描述如何沿用旧的 pthread

的方法。照这个方法配置一下系统就可以了。

 

2 删除 MiniGUI 源代码中调用'pthread_kill_other_threads_np'这个函数

的语句。应该在 src/kernel/init.c 文件中,也可以运行 grep 找一下这个函数。

 

3.使用2.0以上的版本就可以或者使用FC 3以下的版本.

 

这里俺懒,选择2,呵呵!

434  #ifndef __ECOS

435      pthread_kill_other_threads_np();

436   #endif

重新make编译,通过。

#make install

 

配置qvfb并运行示例程序:

编辑/usr/local/etc/MiniGUI.cfg,将GALIAL引擎均改为qvfb

 

     25 [system]

     26 # GAL engine

     27 gal _engine=qvfb

     28

     29 # IAL engine

     30 ial_engine=qvfb

     31

     32 mdev=/dev/mouse

     33 mtype=IMPS2

     34

     35 [fbcon]

     36 defaultmode=1024x768-16bpp

     37

     38 [qvfb]

     39 defaultmode=640x480-16bpp

     40 display=0

     41

 

现在来执行一下吧,首先把 qvfb 加到你的可执行路径中去

# cd $HOME

# vim .bashrc

.bashrc 最后面(最后新启一行)加上一句

export PATH="$PATH:/sbin:/usr/local/bin:/usr/local"

保存退出

# source .bashrc  //让它执行一下,当然你也可以选择重启一下电脑,效果是一样的

 

执行例子程序(在图形界面下执行):

# qvfb &

记住:一定要先运行 qvfb ,并且设置 qvfb ,然后再运行你的程序,而且qvfb 每重启一次就需要重新设置一下,真麻烦!(还得与/usr/local/etc/MiniGUI.cfg中的信息一致)

 

这里我们需要设置640x480   16bit

 

设置完后,点击OK

好了,开始玩吧!

 

需要重新开 终端 哦!

 

#cd /opt/st2410/ mg-samples- 1.3.0 /src

#./helloword

其它的自己看效果吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

导弹头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值