在LINUX入门边上,最近一直在学习。。。本来打算用QT的。。发现那东西太大,,,,最还是选择MINIGUI。。
下面是安装过程及出现问题的一些解决方法。
选择MINIGUI1.6.2,下载地址:http://blog.21ic.com/user1/5108/archives/2008/50737.html
1 安装minigui库、资源
编译 libminigui ,这个是 minigui 运行所必需的库文件,必须编译成功
这里最好是把
# ./configure //最简单的编译方式,让它自己去配置 ,这里采用缺省的Thread 模式而不是Lite模式,因为这种方式在 PC 机上使用最方便,后面移到板子上再改成 Lite 模式即可
通过后,开始编译
# make
接来来就是漫长的等待了,让它慢慢的编译吧
# make install
好了,编译完成,下一步解压安装minigui资源:
# cd minigui-gpl-res-1.6
# make install
至此库和资源安装完毕,还需要进行一些设置:
首先,修改你的 /etc/ld.so.conf 文件,在里面最后新加入一行 /usr/local/lib
这 一步最关键,决定你开始的程序能不能找到它的库
然后执行
# ldconfig
# vi /usr/local/etc/MiniGUI.cfg
在里面找到
[system]
# GAL engine
#gal_engine=fbcon
gal_engine=qvfb //这里修改
# IAL engine
#ial_engine=console
ial_engine=qvfb //这里修改
mdev=/dev/mouse
mtype=IMPS2
[fbcon]
defaultmode=1024x768-16bpp
[qvfb]
defaultmode=640x480-16bpp //这里修改
display=0
保存一下,OK了! 至此库和资源安装设置完毕。
2 安装qvfb:qvfb这个程序可以作为minigui程序的显示载体。linux中没有这个程序,所以需要我们安装一下,然后minigui程序就可以显示在qvfb上了。
拷贝光盘上的qvfb-1.1.tar.gz包到/usr/minigui下,然后解压、安装。
# tar zxf qvfb-1.1.tar.gz
# cd qvfb-1.1
# ./configure
# make
# make install
可能出现的问题:
安装完毕!
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,所以会出错。
4. /usr/local/lib/libminigui.so: undefined reference to `pthread_kill_other_threads_np’
原因:删除 MiniGUI 源代码中调用’pthread_kill_other_threads_np’这个函数
的语句。应该在 src/kernel/init.c 文件中,也可以运行 grep 找一下这个函数。
5. 运行miniGUI的例子出现以下错误,
IAL Native Engine: Can not init mouse!
IAL: Init IAL engine failure.
DESKTOP: Low level event initialization failure!
InitGUI failure when using /usr/local/etc/MiniGUI.cfg as cfg file.
原因:修改/usr/local/etc/MiniGui.cfg文件:
[system]
# GAL engine
gal_engine=qvfb
# IAL engine
ial_engine=qvfb
6. freetype_font_ops问题解决方法:a.把头文件中的extern FONTOPS freetype_font_ops;改为static FONTOPS freetype_font_ops;b.安装freetype-1.3.1
7 cheching for Qt...configure:error: Qt(>= Qt 3.0.3)(headers and libraries)not found.please check your installation!
解决办法:使用kde 即可 不要用gnome ,或用默认的QT。。。。或编译qt时候加上-thread就可以了
3 移植过程
1 在X86的LINUX上设置:/etc/ld.so.conf 文件,在里面最后新加入一行 /usr/local/lib
2 把PC上的/usr/local/lib 拷到X86上相同的文件夹下