注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

deisp的博客

 
 
 

日志

 
 

风微柳细: PC上配置编译MiniGUI v1.3.3和运行示例程序全过程。  

2008-07-13 16:14:21|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
PC上配置编译MiniGUI v1.3.3和运行示例程序全过程

相比内核的配置与编译,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: 嵌入式系统开发原理工具及过程:
MiniGUI 用户手册V1.3.x:
MiniGUI 编程指南V1.3.x:
建议在继续下文之前先大致浏览一下列出的这三篇文档

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

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 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 & 这时会出现一个像下面这样的窗口:
风微柳细: PC上配置编译MiniGUI v1.3.3和运行示例程序全过程。 - liudefang111 - deisp的博客
进入File->Configure,修改显示模式与MiniGUI.cfg保持一致,即640x480-16bpp
接着就可以运行示例程序了,看看两个酷酷: linux:/home/work/minigui/mg-samples-1.3.1 # src/helloworld 风微柳细: PC上配置编译MiniGUI v1.3.3和运行示例程序全过程。 - liudefang111 - deisp的博客 linux:/home/work/minigui/mg-samples-1.3.1 # src/listview 风微柳细: PC上配置编译MiniGUI v1.3.3和运行示例程序全过程。 - liudefang111 - deisp的博客

常见问题:
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 consoleNative 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,所以会出错

Posted by Hily on September 26, 2006 7:34 PM | Permalink

评论

接着运行qvfb &以启动虚拟帧缓冲区: linux:/home/work/minigui/mg-samples-1.3.1 # qvfb &
??????????????????

??????有问题?????
请指教~

发表评论




引文来源  风微柳细: PC上配置编译MiniGUI v1.3.3和运行示例程序全过程

----------------------------
一键转贴,快速捕捉生活精彩,赢每周好礼!查看活动首页>>

  评论这张
 
阅读(420)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017