« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
| 公告 |
|
Blog信息 |
blog名称:FoxWolf 日志总数:127 评论数量:246 留言数量:0 访问次数:849897 建立时间:2006年5月31日 |

| |
[Linux学习]PC上配置编译MiniGUI v1.3.3和运行示例程序全过程 文章收藏, 软件技术, 电脑与网络
FoxWolf 发表于 2007/11/7 15:03:12 |
相比内核的配置与编译,MiniGUI在PC上的配置和编译过程显得非常简单,也或许是因为自己习惯了查bug吧。这篇文章主要介绍MiniGUI v1.3.3在PC上的配置和编译过程,以及示例程序的编译和运行。由于很多内容在官方的文档中已经写得很清楚了,所以这里主要是对配置和编译过程中自己碰到的一些问题进行总结。
Hily JiangEmail&Gtalk: hilyjiang at GmailBlog: http://hily.iyi.cn/
MiniGUI官方网站:http://www.minigui.com/http://www.minigui.org/可以在上面找到各个版本的源码和相关资料,本文用到的源码均可在这个页面中下载到:http://www.minigui.org/res.shtmlMiniGUI图形库: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总用量 6150drwxr-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.gzlinux:/home/work/minigui # tar -zxf libminigui-1.3.3.tar.gzlinux:/home/work/minigui # tar -zxf mg-samples-1.3.0.tar.gzlinux:/home/work/minigui # tar -zxf minigui-res-1.3.3.tar.gzlinux:/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 # makemake all-recursivemake[1]: Entering directory `/home/work/minigui/libminigui-1.3.3'(以下信息略过...)若使用默认配置,则编译过程会出现一些问题:varbitmap.c:248: error: static declaration of 'var_bitmap_font_ops' follows non-static declarationvarbitmap.h:38: error: previous declaration of 'var_bitmap_font_ops' was heremake[4]: *** [varbitmap.lo] 错误 1make[4]: Leaving directory `/home/work/minigui/libminigui-1.3.3/src/font'make[3]: *** [all-recursive] 错误 1make[3]: Leaving directory `/home/work/minigui/libminigui-1.3.3/src/font'make[2]: *** [all-recursive] 错误 1make[2]: Leaving directory `/home/work/minigui/libminigui-1.3.3/src'make[1]: *** [all-recursive] 错误 1make[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 &这时会出现一个像下面这样的窗口:500)this.width=500'>进入File->Configure,修改显示模式与MiniGUI.cfg保持一致,即“640x480-16bpp”。接着就可以运行示例程序了,看看两个酷酷:linux:/home/work/minigui/mg-samples-1.3.1 # src/helloworld500)this.width=500'>linux:/home/work/minigui/mg-samples-1.3.1 # src/listview500)this.width=500'>
常见问题: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,所以会出错。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1782049 |
|
|