1 库文件下载
iphone-like-demo-1.0.0.tar.gz
libminigui-gpl-3.0.12.tar.gz minigui核心库文件
mg-samples-3.0.12.tar.gz minigui例子文件
minigui-res-be-3.0.12.tar.gz minigui资源文件
libmgplus-1.2.4.tar.gz minigui高级图形功能
libmgi-2.0.4.tar.gz minigui的输入法
zlib-1.2.2.tar.gz
jpegsrc.v7.tar.gz
libpng-1.2.37.tar.gz
freetype-2.3.9-fm20100818.tar.gz
环境
Ubuntu 14.04.5 LTS 64位
MiniGui3.0.12
Qt-3.3.0
2 lib安装
首先安装编译32位程序的库,因为minigui编译成32位程序比较容易,如果编译换成64位程序,会有很多错误需要修改,安装之前,建议先把本文看完。
sudo apt-get install g++-multilib ia32-libs libc6-dev-i386 linux32
可能有些库没有,但是控制台会提示替代能替代的库,安装就好
libpng,libjpeg,zlib,freetype这四个库都是解压后执行下面的命令,安装到/usr/local/lib
CC="gcc -m32" ./configure
make
sudo make install
3 qvfb安装
安装依赖的第三方库
sudo apt-get install libx11-dev libxext-dev libxtst-dev
这些也安装好
sudo apt-get install build-essential subversion git-core libncurses5-dev \
zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl \
mercurial bzr ecj cvs unzip ia32-libs
3.1 qt-4.8.6
不需要安装qt-4.8.6,此处记录我艰难的安装过程,直接安装qt-3.3.0即可。
选择文件qt-everywhere-opensource-src-4.8.6.tar.gz,解压并进入文件夹,安装到/home/anruliu/software/qt-4.8.6这个文件夹下
CC="gcc -m32" CXX="g++ -m32" ./configure -opensource -prefix /home/anruliu/software/qt-4.8.6
CC=“gcc -m32” CXX="g++ -m32"是编译成32位的,实际上不需要编译成32位程序,去掉即可,之后出现开源许可,输入yes接受,通过库文件检查之后输入
make && make install
编译通过,安装完成后,需要将qt的库和可执行文件路径配置到环境变量中,否则在安装qvfb时会报错
sudo gedit ~/.bashrc
在文件最后面后面加上
export PATH=/home/anruliu/software/qt-4.8.6/bin:$PATH
使环境变量生效
source ~/.bashrc
进入qt4.8.6源码目录下的tools/qvfb,执行qmake命令
qmake
如果出现错误找不到qmake命令,则是因为环境变量配置没有生效,生效之后报错看下面的错误,qmake执行成功,执行make命令,开始编译,编译前可以在/tools/qvfb/main.cpp中更改width、height和depth的值
make
编译成功后,将源码目录bin下的qvfb文件拷贝到qt安装目录bin下,双击qvfb就可以运行,也可以在bin目录下执行
./qvfb
qvfb安装成功。在需要使用minigui前,先打开qvfb模拟工具,让其在后台运行,这样minigui的界面就可以正常运行了。
错误
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
解决
sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
/usr/lib/x86_64-linux-gnu/qt4/bin 改为 /home/anruliu/software/qt-4.8.6/bin
错误
undefined reference to `png_create_write_struct'
undefined reference to `png_create_info_struct'
undefined reference to `png_set_compression_level'
undefined reference to `png_set_write_fn'
解决
打开/tools/qvfb/Makefile文件,找到LIBS变量,增加 -L/usr/local/lib -lpng
错误
/usr/bin/ld: skipping incompatible /home/anruliu/workspace/minigui/qt-everywhere-opensource-src-4.8.6/src/tools/bootstrap/libbootstrap.a when searching for -lbootstrap
/usr/bin/ld: cannot find -lbootstrap
解决
打开/src/tools目录下的idc,moc,rcc,uic,uic3文件夹里面的Makefile文件,把LINK=g++改为LINK=g++ -m32
打开/src目录下的corelib、xml、network、sql、testlib、gui、qt3support、xmlpatterns、multimedia、svg、script、declarative、scripttools、plugins、imports的Makefile文件也修改,其中plugins和imports的子目录下也有很多Makefile,注意不要漏了。还有很多很多处需要修改,根据出错的路径更改即可!!!
因为CC和CXX在./configure的时候都改成