第一步 :解压缩源码包到指定目录。
这里,使用 /home/source/minigui/minigui1.3.x/ 作为指定目录,解压出来的代码都放到这
个目录下。
1. 创建 /home/source/minigui/minigui1.3.x 目录。
# mkdir –p /home/source/minigui/minigui1.3.x
2. 解压缩下载下来的四个包
# tar –zxvf libminigui-1.3.3.tar.gz –C /home/source/minigui/minigui1.3.x
# tar –zxvf minigui-res-1.3.3.tar.gz –C /home/source/minigui/minigui1.3.x
# tar –zxvf mde-1.3.0.tar.gz –C /home/source/minigui/minigui1.3.x
# tar –zxvf mg-samples-1.3.0.tar.gz –C /home/source/minigui/minigui1.3.x
tar xzvf qvfb-1.0.tar.gz -C /home/source/minigui/minigui1.3.x/
将 qt-devel-3.3.8-4.fc7.i386.rpm 拷贝到 home/source/minigui/minigui1.3.x/
第二步 :编译安装 miniGUI 库 libminigui-1.3.3 。
# cd /home/source/minigui/minigui1.3.x/libminigui-1.3.3
# ./configure // 使用默认编译方式,缺省的是 Thread 模式而不是 Lite 模式,因为这种方式在 PC 机上使用最方便,后面移到板子上再改成 Lite 模式。缺省安装目录为 /usr/local/lib 若是在fedora 下开发可用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 │ │
“Ext library options” 部分配置为:
│ │ [*] TreeView control │ │
│ │ [*] ListView control │ │
│ │ [*] Grid control │ │
│ │ [*] MonthCalendar control │ │
│ │ [*] SpinBox control │ │
│ │ [*] CoolBar control │ │
│ │ [ ] Full GIF98a support │ │
│ │ [ ] Skin support │ │
│ │ [ ] Library of VCOnGUI │ │
“Development environment options” 开发环境设置:
│ │(Linux) Platform │ │
│ │(i386) Compiler │ │
│ │(glibc) Libc │ │
│ │--- Installation options │ │
│ │ Path prefix: "/usr/local" │ │
│ │--- Additonal Compiler Flags │ │
│ │ CFLAGS: "" │ │
│ │ LDFLAGS: "" │ │
如果make 时出现如下错误:
make[3]: Entering directory `/home/work1/minigui/libminigui-1.3.3/ext/control'
source='grid.c' object='grid.lo' libtool=yes /
depfile='.deps/grid.Plo' tmpdepfile='.deps/grid.TPlo' /
depmode=gcc3 /bin/sh ../../depcomp /
/bin/sh ../../libtool --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I./ -I../include -I../../include -D__MINIGUI_LIB__ -D_REENTRANT -O2 -Wall -Wstrict-prototypes -pipe -DNDEBUG -c -o grid.lo `test -f 'grid.c' || echo './'`grid.c
rm -f .libs/grid.lo
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I./ -I../include -I../../include -D__MINIGUI_LIB__ -D_REENTRANT -O2 -Wall -Wstrict-prototypes -pipe -DNDEBUG -c grid.c -MT grid.lo -MD -MP -MF .deps/grid.TPlo -fPIC -DPIC -o .libs/grid.lo
grid.c: In function 'AddCol':
grid.c:626: error: invalid lvalue in assignment
grid.c:627: error: invalid lvalue in assignment
grid.c:638: error: invalid lvalue in assignment
grid.c:639: error: invalid lvalue in assignment
grid.c:667: error: invalid lvalue in assignment
grid.c:668: error: invalid lvalue in assignment
grid.c:680: error: invalid lvalue in assignment
grid.c:681: error: invalid lvalue in assignment
grid.c: In function 'AddRow':
grid.c:733: error: invalid lvalue in assignment
grid.c:734: error: invalid lvalue in assignment
grid.c:745: error: invalid lvalue in assignment
grid.c:746: error: invalid lvalue in assignment
grid.c:774: error: invalid lvalue in assignment
grid.c:775: error: invalid lvalue in assignment
grid.c:788: error: invalid lvalue in assignment
grid.c:789: error: invalid lvalue in assignment
make[3]: *** [grid.lo] 错误 1
make[3]: Leaving directory `/home/work1/minigui/libminigui-1.3.3/ext/control'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/home/work1/minigui/libminigui-1.3.3/ext'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/home/work1/minigui/libminigui-1.3.3'
make: *** [all] 错误 2
出错文件是位于ext/control/ 下的grid.c ,可能是编译器版本太高了,才会出现这样的错误。
解决方法:
将grid.c 中所有类似这样的代码:
(PGRIDCOLHDR) pCell1->pRowHdr = pRowHdr;
(PGRIDCOLHDR) pCell1->pColHdr = pCol1;
将前面的强制类型转换去掉就可以编译通过了。
修改init.c 。进入kernel
[#root]cd src/kernel
[#root]vim init.c
将第435 行 pthread_kill_other_threads_np (); 注释掉
然后
[root@localhost libminigui-1.3.3]# make
# su // 切换到 root 模式,下面 make install 需要 root 权限,如果已经是 root 权限,此步省去,以下用到 make install 的地方同此处。
# make install
第三步 :编译安装 miniGUI 资源包 minigui-res-1.3.3
# cd /home/source/minigui/minigui1.3.x/minigui-res-1.3.3
# make install
默认安装到 /usr/local/lib/minigui/res 目录。
第四步 :编译控件例子 mg-samples-1.3.0
# cd /home/source/minigui/minigui1.3.x/ mg-samples-1.3.0
# ./configure // 默认配置
# make
第五步 :编译综合例子 mde-1.3.0
# cd /home/source/minigui/minigui1.3.x/mde-1.3.0
# ./configure // 默认配置
[root@localhost mde-1.3.0]# cd tools/
[root@localhost tools]# gedit vcongui.c
将第106 行 VCOnMiniGUI (&ChildInfo); 修改为 //VCOnMiniGUI (&ChildInfo);
[root@localhost tools]# cd ..
[root@localhost mde-1.3.0]# make
第六步 :编译安装 qvfb
进入 [root@localhost minigui1.3.x]# 下双击安装 qt-devel-3.3.8-4.fc7.i386.rpm 。再进入 qvfb 目录下,输入配置参数:
./configure --with-qt-includes=/usr/lib/qt-3.3/include --with-qt-libraries=/usr/lib/qt-3.3/lib --with-qt-dir=/usr/lib/qt-3.3
然后 make
最好 make install
第六步 设置参数
●进入 /usr/local/etc/ ,将 MiniGUI.cfg 修改为:
[root@localhost qvfb-1.0]# cd /usr/local/etc/
[root@localhost etc]# gedit MiniGUI.cfg
system]
# GAL engine
gal_engine=qvfb // 这里修改,开发时使用 qvfb 模拟
# IAL engine
ial_engine=qvfb // 这里修改 ,同上
mdev=/dev/mouse
mtype=IMPS2
[fbcon]
defaultmode=1024x768-16bpp
[qvfb]
defaultmode=640x480-16bpp
display=0
● 进入 /etc/ld.so.conf.d 建一个 minigui.conf ,文件的内容为 /usr/local/lib
[root@localhost etc]# cd /etc/ld.so.conf.d/
[root@localhost ld.so.conf.d]# gedit minigui.conf
在 minigui.conf 中添加 /usr/local/lib
最后要把系统共享库缓存刷新,将 libminigui 加载上,可以使用命令
[root@fedora7]#ldconfig
● 然后就可以使用 qvfb 体验 miniGUI 了,进入 qvfb1.0 根目录下的 qvfb 文件夹:
[root@localhost ld.so.conf.d]# cd /home/source/minigui/minigui1.3.x/qvfb-1.0/qvfb
输入下面命令:
[root@fedora7]# qvfb & // 加上 & 符号使 qvfb 进程开启后 shell 立即返回,否则会阻塞 shell 进程,需要再开一个 shell 才可以运行 minigui 程序。
此时弹出窗口 Virtual framebuffer 选择 Fiel->Configure 在 size 栏选择 640*480 “VGA” 在 Depth 栏选择 16 bit 然后按回车( Enter )键 //qvfb 运行起来后在 qvfb 中设置虚拟显示器分辨率: File-->Configure ,注意 Size 和 Depth 要设置的同 MiniGUI.cfg 中的分辨率和色深一致。
第七步 :调试程序
进入程序事例目录
[root@localhost ld.so.conf.d]# cd /home/source/minigui/minigui1.3.x/mg-samples-1.3.1/src/
[root@localhost src]# ./helloworld
至此。 MiniGui v1.3.3 在 PC 上的配置就结束了