PC上配置编译MiniGUI v1.3.3和运行示例程序全过程

转载 2007年09月12日 14:05:00

相比内核的配置与编译,MiniGUI在PC上的配置和编译过程显得非常简单,也或许是因为自己习惯了查bug吧。
这篇文章主要介绍MiniGUI v1.3.3在PC上的配置和编译过程,以及示例程序的编译和运行。
由于很多内容在官方的文档中已经写得很清楚了,所以这里主要是对配置和编译过程中自己碰到的一些问题进行总结。

Hily Jiang
Email&Gtalk: hilyjiang at Gmail
Blog: http://hily.iyi.cn/

MiniGUI官方网站:
http://www.minigui.com/
http://www.minigui.org/
可以在上面找到各个版本的源码和相关资料,本文用到的源码均可在这个页面中下载到:
http://www.minigui.org/res.shtml
MiniGUI图形库:
libminigui-1.3.3.tar.gz(点击下载)
MiniGUI资源包,里面包含字体、图标等资源:
minigui-res-1.3.tar.gz(点击下载)
MiniGUI v1.3.3示例程序:
mg-samples-1.3.0.tar.gz(点击下载)
另外,我们还需要下载QVFB(Qt Virtual FrameBuffer),它可以在PC上模拟显示屏,方便调试MiniGUI应用程序。
MiniGUI官网上对QVFB进行了打包,可以直接下载:
qvfb-1.0.tar.gz(点击下载)
相关的官方文档均可在以下页面中下载到:
http://www.minigui.com/download/cindex.shtml
《Linux/uClinux + MiniGUI: 嵌入式系统开发原理、工具及过程》:Studying-Embedded-Linux-Using-MiniGUI.pdf(点击下载)
《MiniGUI 用户手册》V1.3.x:MINIGUI-USER-MANUAL-V1.3-1-C.pdf(点击下载)
《MiniGUI 编程指南》V1.3.x:MINIGUI-PROG-GUIDE-V1.3-C.pdf(点击下载)
建议在继续下文之前先大致浏览一下列出的这三篇文档。

(一) 将下载的源码全部解压到一个目录下:

linux:/home/work/minigui # ll
总用量 6150
drwxr-xr-x 2 root root 232 2006-09-26 18:32 .
drwxr-xr-x 10 root root 1096 2006-09-26 17:34 ..
-rw-r--r-- 1 root root 2227015 2006-09-26 18:31 libminigui-1.3.3.tar.gz
-rw-r--r-- 1 root root 222891 2006-09-26 18:31 mg-samples-1.3.0.tar.gz
-rw-r--r-- 1 root root 1425621 2006-09-26 18:31 minigui-res-1.3.3.tar.gz
-rw-r--r-- 1 root root 1717567 2006-09-26 18:31 qvfb-1.0.tar.gz
linux:/home/work/minigui # tar -zxf libminigui-1.3.3.tar.gz
linux:/home/work/minigui # tar -zxf mg-samples-1.3.0.tar.gz
linux:/home/work/minigui # tar -zxf minigui-res-1.3.3.tar.gz
linux:/home/work/minigui # tar -zxf qvfb-1.0.tar.gz

(二) 切换到libminigui-1.3.3目录,开始配置并编译:

linux:/home/work/minigui # cd libminigui-1.3.3/
linux:/home/work/minigui/libminigui-1.3.3 # make menuconfig
如果对配置的选项不是很清楚,可以查看文档《Linux/uClinux + MiniGUI: 嵌入式系统开发原理、工具及过程》的附录B部分。
这里保持默认配置,然后退出配置界面并保存设置。
接着执行make进行编译:
*** End of MiniGUI configuration.
*** Next, you must run 'make'.

linux:/home/work/minigui/libminigui-1.3.3 # make
make all-recursive
make[1]: Entering directory `/home/work/minigui/libminigui-1.3.3'
(以下信息略过...)
若使用默认配置,则编译过程会出现一些问题:
varbitmap.c:248: error: static declaration of 'var_bitmap_font_ops' follows non-static declaration
varbitmap.h:38: error: previous declaration of 'var_bitmap_font_ops' was here
make[4]: *** [varbitmap.lo] 错误 1
make[4]: Leaving directory `/home/work/minigui/libminigui-1.3.3/src/font'
make[3]: *** [all-recursive] 错误 1
make[3]: Leaving directory `/home/work/minigui/libminigui-1.3.3/src/font'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/home/work/minigui/libminigui-1.3.3/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/home/work/minigui/libminigui-1.3.3'
make: *** [all] 错误 2
重新运行make menuconfig,将“Font options”中的“Var bitmap font”选项去掉即可:
  │ │ [*] Raw bitmap font         │ │
│ │ [ ] Var bitmap font │ │
│ │ [*] Incore font sansserif │ │
│ │ [*] Incore font courier │ │
│ │ [*] Incore font symbol │ │
│ │ [*] Incore font vgas │ │
│ │ [*] Qt Prerendered Font │ │
│ │ [*] TrueType font │ │
│ │ [*] Adobe Type1 font │ │
接下来你应该还会碰到一个编译错误,请参看这篇文章解决:
《MiniGUI在i386下编译失败(grid.c编译出错)》 编译成功后运行make install进行libminigui库的安装,默认配置下将安装到/usr/local/目录下,可以在make menuconfig中修改“Development environment options”中的“Path prefix”来指定安装目录。如果使用其他目录,则需要注意相关的目录必须添加进环境PATH变量中,否则在编译MiniGUI应用程序时会出现找不到 包含文件等错误信息。
接着要运行ldconfig加载新生成的链接库,否则将会出现类似找不到“libminigui-1.3.so.3”的错误消息。

(三) 接着安装MiniGUI的资源包:

linux:/home/work/minigui/libminigui-1.3.3 # cd ../
linux:/home/work/minigui # cd minigui-res-1.3.3/
linux:/home/work/minigui/minigui-res-1.3.3 # make install

(四) 安装qvfb:

linux:/home/work/minigui # cd minigui-res-1.3.3/
linux:/home/work/minigui/minigui-res-1.3.3 # cd ../qvfb-1.0/
linux:/home/work/minigui/qvfb-1.0 # ./configure
(略过输出信息...)
linux:/home/work/minigui/qvfb-1.0 # make
(略过输出信息...)
linux:/home/work/minigui/qvfb-1.0 # make install
(略过输出信息...)

(五) 安装示例程序:

linux:/home/work/minigui/qvfb-1.0 # cd ../mg-samples-1.3.1/
linux:/home/work/minigui/mg-samples-1.3.1 # ./configure
(略过输出信息...)
linux:/home/work/minigui/mg-samples-1.3.1 # make
(略过输出信息...)
linux:/home/work/minigui/mg-samples-1.3.1 # make install
(略过输出信息...)
示例程序将被安装到src目录下。

(六) 配置qvfb并运行示例程序:
编辑/usr/local/etc/MiniGUI.cfg,将GAL和IAL引擎均改为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 &以启动虚拟帧缓冲区:
linux:/home/work/minigui/mg-samples-1.3.1 # qvfb &
这时会出现一个像下面这样的窗口:
Screenshot-Virtual%20framebuffer%20240x320%2032bpp%20Display%20%3A0.png
进入File->Configure,修改显示模式与MiniGUI.cfg保持一致,即“640x480-16bpp”。
接着就可以运行示例程序了,看看两个酷酷:
linux:/home/work/minigui/mg-samples-1.3.1 # src/helloworld
Screenshot-Virtual%20framebuffer%20640x480%2016bpp%20Display%20%3A0.png
linux:/home/work/minigui/mg-samples-1.3.1 # src/listview
Screenshot-Virtual%20framebuffer%20640x480%2016bpp%20Display%20%3A0-1.png

常见问题:
1. 启动程序时出错:

NEWGAL: Set video mode failure.
GDI: Can not initialize graphics engine!
InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.
Video mode smaller than requested
原因:qvfb中的显示设置与MiniGUI.cfg中的显示设置不一样所致,修改成一样就可以了。
2. 启动程序时出错:
GAL: Does not find matched engine.
GDI: Can not get graphics engine information!
InitGUI failure when using incore resource.
原因:在配置MiniGUI时没有选择qvfb选项或没有选择需要的位深支持,进入make menuconfig中的“GAL engine options”,选上“Native GAL engine on Linux FrameBuffer console”、“Native GAL engine on Qt Virtual FrameBuffer”和需要的位深模式(如“16BPP FB”)后重新编译即可。
3. 我自己写了一个程序,但是在编译时提示:
linux:/home/work1/app # gcc -o hello hello.c -lpthread -lminigui
/usr/local/lib/libminigui.so: undefined reference to `CustomizeDesktopMenu'
/usr/local/lib/libminigui.so: undefined reference to `CustomDesktopCommand'
collect2: ld returned 1 exit status
原因:我使用的是MiniGUI-Thread(在make menuconfig中指定),程序中没有包含必须的minigui/dti.c,所以会出错。
 

相关文章推荐

MiniGUI v1.3.3在PC上的配置和编译过程(常见问题解决方法)

来源: ChinaUnix博客  日期: 2007.10.15 13:02 (共有0条评论) 我要评论 MiniGUI v1.3.3在PC上的配置和编译过程(常见问题解决方法)这篇文章主要介绍Mini...
  • kiro
  • kiro
  • 2011-06-01 22:46
  • 205

MiniGUI v1.3.3在PC上的配置和编译过程(常见问题解决方法)

想好好学学编程基础,先前安装了qt的开发环境,但是最终因为c++水平有限,决定先搞搞minigui的代码,就按着这个教材安装了个开发环境花了我一晚上的时间Minigui算是我们中国人在世界软件界的骄傲...

wordcount示例程序运行全过程(Hadoop-1.0.0)

在上一篇文章中,已经提到了配置完成了一个简单的分布式hadoop的hdfs文件系统,下面就需要去运行一下wordcount来了解该文件系统的运行机制。 cd到wordcount.java的目录,再此...

Google Map Android v2开发: 安装运行Google Map Android v2 示例程序

V2 版本有几个注意事项: 只能运行在Android2.2以及以上版本的设备上不能运行在模拟器中   在开发环境中安装Goole Play service SDK. (...

Google Map Android v2开发: 安装运行Google Map Android v2 示例程序

转载自:http://www.blogjava.net/xmlspy/articles/393726.html V2 版本有几个注意事项: 只能运行在Android2.2以及以...

Google Map Android v2开发: 安装运行Google Map Android v2 示例程序

V2 版本有几个注意事项: 只能运行在Android2.2以及以上版本的设备上 不能运行在模拟器中   在开发环境中安装Goole Play service SDK. (参考...

Hadoop安装配置、运行第一个WordCount示例程序

操作系统ubuntu。本篇目的是在单机模式下运行成功WordCount示例程序。 本篇小结安装步骤,遇到的问题和解决办法。 疑惑点及其思考。 Hadoop是为linux而开发的,...

Hadoop示例程序WordCount编译运行

首先确保Hadoop已正确安装及运行。 将WordCount.java拷贝出来 $ cp ./src/examples/org/apache/hadoop/examples/WordCount...
  • JDPlus
  • JDPlus
  • 2014-03-26 11:44
  • 6526

最简单的ndk示例程序及编译过程

1.建立一个android 的项目, NDK 不支持 1.5 以下的版本 项目中包含 两个文件:JNI.java, JniTest.java 2.编译工程 。这步非常重要,先编译工程才能执...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)