本文主要解决如下问题:
1.如何在64位的ubuntu14.04系统上安装MiniGUI
2.解决安装过程中碰到的问题
3.Ubuntu14.04环境安装qvfb工具
准备安装包和安装环境
Ubuntu 64bit兼容32bit GCC 交叉编译环境
方法一:
(1)sudo apt-get install lib32z1
(2)sudo apt-get install lib32stdc++6
方法二(时间较长):
(1)sudo apt-get update
(2)sudo apt-get dist-upgrade
(3)sudo apt-get install ia32-libs
然后安装
sudo apt-get install libc6-dev-i386 lib32ncurses5-dev
准备MiniGUI安装包
MiniGui资源下载:MiniGui官网(http://www.minigui.org/en/download/)
MiniGui库版本: 3.0.12
资源文件:
minigui-res-be-3.0.12.tar.gz
libminigui-gpl-3.0.12.tar.gz
libmgplus-1.2.4.tar.gz
mg-samples-3.0.12.tar.gz
安装MiniGUI
1.安装资源文件
解压资源文件,进入minigui-res-be-3.0.12目录
$ ./configure –prefix=/home/michael/Program/minigui
$ make && make install
2.安装minigui文件
解压文件,进入libminigui-gpl-3.0.12目录
$ ./configure –prefix=/home/michael/Program/minigui –enable-qvfbial=yes –enable-videoqvfb=yes
$ make && make install
错误:png.c:28:17: fatal error: png.h: No such file or directory
解决:sudo apt-get install libpng12-dev
安装完成后,在指定目录~/install/minigui下,生成了etc include lib share四个文件夹,分别放置了配置文件、头文件、库文件和资源文件,在实际开发时,需要用到这些文件。
3.编译sample文件
解压资源文件,进入mg-samples-3.0.12目录
./configure –prefix=/home/michael/Program/minigui PKG_CONFIG_PATH=/home/michael/Program/minigui/lib/pkgconfig CPPFLAGS=-I/home/michael/Program/minigui/include
错误:agg_platform_support.cpp:30:28: fatal error: minigui/common.h: No such file or directory
解决:设置minigui头文件目录,CPPFLAGS=-I/home/test/install/minigui/include
错误:dlgdemo.c:40:27: fatal error: mgplus/mgplus.h: 没有那个文件或目录
解决:设置libmgplus头文件目录,CPPFLAGS=-I/home/test/install/minigui/include
提示:No package ‘minigui’ found — 运行configure时增加
PKG_CONFIG_PATH=~/install/minigui/lib/pkgconfig
提示:error: minigui/common.h, 运行configure是增加
CPPFLAGS=-I~/install/minigui/include
ubuntu编译minigui 3.0.12出现下面错误:
object.h:275:9: error: incompatible types when assigning to type ‘va_list’ from type ‘struct __va_list_tag *’
网上搜索了下说是编译系统是64位导致的,换为32位就可以了。但是我的编译系统无法换,看了下,直接在对应的makefile里面修改把该模块编译为32位。如下:
CFLAGS = -m32 -g -O2
在CFLAGS上加上-m32就可以了。
(这个最好用32位的系统来编译,不然所有makefile都要修改,比较麻烦)
ubuntu14.04 64位安装Minigui详细解决(http://www.linuxdiyf.com/linux/23957.html)
Ubuntu14.04环境安装qvfb工具
1、安装环境
ubuntu 14.04-i386
安装编译工具 sudo apt-get install build-essential
安装依赖的第三方库 libx11-dev libxext-dev libxtst-dev
qt-4.8.6源码下载链接:http://download.qt.io/archive/qt/4.8/4.8.6/
2、编译安装qt-4.8.6
配置 $ ./configure -opensource -prefix /home/test/install/qt
执行make && make install
编译过程如果突然错误提示缺少库的话就使用apt源默认安装就好了。
编译通过,安装完成后,将qt的库和可执行文件路径配置到环境变量中,否则在安装qvfb时会报错。
export PATH=$PATH:/home/test/install/qt/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/test/install/qt/lib
这里没有安装到系统默认的/usr/local文件夹下,是因为我的ubuntu并不需要qt的开发环境,只是需要qvfb工具,才不得不安装qt。
如果需要用过qt开发环境的,也可以只用默认安装。
3、编译安装qvfb
配置环境变量成功后,进入qt4.8.6源码目录下的tools/qvfb,执行qmake命令。
如果出现错误找不到qmake命令,则是因为环境变量配置没有生效。
qmake执行成功,执行make命令,开始编译
如果出现错误:
qanimationwriter.cpp:(.text+0x138):对‘png_create_write_struct’未定义的引用
qanimationwriter.cpp:(.text+0x143):对‘png_create_info_struct’未定义的引用
qanimationwriter.cpp:(.text+0x159):对‘png_set_compression_level’未定义的引用
qanimationwriter.cpp:(.text+0x178):对‘png_set_write_fn’未定义的引用
解决步骤:
(1)执行命令
$ locate libpng
查看系统libpng库位置,如果找不到,需要默认安装。
我的系统下结果为:
/lib/i386-Linux-gnu/libpng12.so.0
(2)建立软连接
$ sudo ln -s /lib/i386-linux-gnu/libpng12.so.0 /lib/i386-linux-gnu/libpng.so
(3)修改Makefile文件
打开Makefile文件,找到LIBS变量,增加 -L/lib/lib/i386-linux-gnu -lpng:
LIBS = $(SUBLIBS) -L/home/test/share/code/qt/qt-everywhere-opensource-src-4.8.6/lib -L/usr/X11R6/lib -lz -lXtst -lQtGu i -L/home/test/share/code/qt/qt-everywhere-opensource-src-4.8.6/lib -L/usr/X11R6/lib -L/lib/lib/i386-linux-gnu -lpng -lQtCore -lpthread -lXext -lX11 -lm
保存退出,重新执行。
编译成功后,将源码目录bin下的qvfb文件拷贝到qt安装目录bin下。
运行 $ qvfb -width 600 -height 400 &
qvfb安装成功。在需要使用minigui前,先打开qvfb模拟工具,让其在后台运行,这样minigui的界面就可以正常运行了。
运行MiniGUI Sample用例问题
问题1:
./lf_skin: error while loading shared libraries: libminigui_ths-3.0.so.12: cannot open shared object file: No such file or directory
解决办法:
export LD_LIBRARY_PATH=/home/michael/Program/minigui/lib_x86/lib:$LD_LIBRARY_PATH
问题2:
“`
MISC: Can not locate your MiniGUI.cfg file or bad files!
KERNEL>InitGUI: Initialization of misc things failure!
““
解决:把libminigui-gpl-3.0.12/etc/MiniGUI.cfg复制到当前目录下[mg-samples-3.0.12/src]
问题3:
execlp error!!
execl: No such file or directory
NEWGAL>PCXVFB: Wait too long for CLIENT.
NEWGAL: Does not find matched engine: pc_xvfb.
KERNEL>InitGUI: Can not get graphics engine information!
解决:
[system]
# GAL engine and default options
gal_engine=qvfb(修改此处)
defaultmode=640x480-16bpp(修改此处)
IAL engine
ial_engine=qvfb
mdev=/dev/input/mice
mtype=IMPS2
[fbcon]
defaultmode=1024x768-16bpp
[qvfb]
defaultmode=640x480-16bpp
window_caption=QVFB-for-MiniGUI-3.0
exec_file=/usr/local/bin/qvfb2 (修改此处)
display=0
[pc_xvfb]
defaultmode=640x480-16bpp
window_caption=XVFB-for-MiniGUI-3.0-(Gtk-Version)
exec_file=/usr/local/bin/qvfb2
display=0
问题4:
NEWGAL: Does not find matched engine: qvfb.
KERNEL>InitGUI: Can not get graphics engine information!
解决:
在安装libminigui-gpl-3.0.12时增加配置–with-targetname=qvfb –enable-qvfbial=yes
参照第6)条
问题5:
FONT>LogFont: requested info: type: rbf, family: vgaoem, style: 10000, charset: ISO8859-1, size: 8.
FONT>LogFont: created info: type: rbf, family: VGAOEM, style: 10000, charset: ISO8859-1, size: 8.
KERNEL>InitGUI: Count not init mouse cursor!
KERNEL>InitGUI: Init failure, please check your MiniGUI configuration or resource.
解决:
修改MiniGUI.cfg配置文件
[cursorinfo]
108 # Edit following line to specify cursor files path
109 #cursorpath=/usr/local/share/minigui/res/cursor/
110 cursorpath=/home/colin/minigui/lib_x86/share/minigui/res/cursor/
111 cursornumber=23
[resinfo]
137 #respath=/usr/local/share/minigui/res/
138 respath=/home/colin/minigui/lib_x86/share/minigui/res/
至此minigui全部问题得到解决。
附录
minigui显示中文,MiniGUI.cfg配置如下:
[systemfont]
font_number=10
font0=rbf-FixedSys-rrncnn-8-16-ISO8859-1
font1=*-FixedSys-rrncnn-*-16-ISO8859-1
font2=*-Courier-rrncnn-*-16-ISO8859-1
font3=*-SansSerif-rrncnn-*-16-ISO8859-1
font4=*-System-rrncnn-*-16-ISO8859-1
font5=*-fixed-rrncnn-*-16-GB2312
font6=*-Courier-rrncnn-*-16-GB2312
font7=*-SansSerif-rrncnn-*-16-GB2312
font8=*-Times-rrncnn-*-16-GB2312
font9=*-Helvetica-rrncnn-*-16-GB2312
下面几个参数配置不正确可能导致中文乱码,具体参数查看用户手册。
default=0
wchar_def=5
fixed=5
caption=5
menu=5
control=5
[rawbitmapfonts]
font_number=4
name0=rbf-fixed-rrncnn-8-16-ISO8859-1
fontfile0=/home/colin/minigui/lib_x86/share/minigui/res/font/8x16-iso8859-1.bin
name1=rbf-fixed-rrncnn-16-16-GB2312-0
fontfile1=/home/colin/minigui/lib_x86/share/minigui/res/font/song-16-gb2312.bin
name2=rbf-fixed-rrncnn-6-12-ISO8859-1
fontfile2=/home/colin/minigui/lib_x86/share/minigui/res/font/6x12-iso8859-1.bin
name3=rbf-fixed-rrncnn-12-12-GB2312-0
fontfile3=/home/colin/minigui/lib_x86/share/minigui/res/font/song-12-gb2312.bin
[varbitmapfonts]
font_number=6
name0=vbf-Courier-rrncnn-8-13-ISO8859-1
fontfile0=/home/colin/minigui/lib_x86/share/minigui/res/font/Courier-rr-8-13.vbf
name1=vbf-Helvetica-rrncnn-11-12-ISO8859-1
fontfile1=/home/colin/minigui/lib_x86/share/minigui/res/font/Helvetica-rr-11-12.vbf
name2=vbf-Times-rrncnn-10-12-ISO8859-1
fontfile2=/home/colin/minigui/lib_x86/share/minigui/res/font/Times-rr-10-12.vbf
name3=vbf-Courier-rrncnn-10-15-ISO8859-1
fontfile3=/home/colin/minigui/lib_x86/share/minigui/res/font/Courier-rr-10-15.vbf
name4=vbf-Helvetica-rrncnn-15-16-ISO8859-1
fontfile4=/home/colin/minigui/lib_x86/share/minigui/res/font/Helvetica-rr-15-16.vbf
name5=vbf-Times-rrncnn-13-15-ISO8859-1
fontfile5=/home/colin/minigui/lib_x86/share/minigui/res/font/Times-rr-13-15.vbf