Qt Embedded是挪威trolletch公司的图形化界面开发工具Qt的嵌入式版本,它通过Qt API与linux I/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,Qt/embedded和Qt一样,在4.5版本之后提供了三种不同的授权协议GPL, LGPL和Commercial。
Qt Embedded目前的版本通常为4.5,提供了两个版本,分别是Qt for Embedded Linux,以及Qt for Windows CE。
一、环境准备
安装前所做的准备,下面这些软件可以免费从trolltech的WEB或FTP服务器上下载
tmake 1.11 或更高版本; (生成Qt/Embedded应用工程的Makefile文件)
Qt/Embedded 2.3.7 (Qt/Embedded 安装包)
Qt 2.3.2 for X11; (Qt的X11版的安装包, 它将产生x11开发环境所需要的两个工具)
1、安装tmake
在Linux 命令模式下运行以下命令:
- tar xfz tmake-1.11.tar.gz
- export TMAKEDIR=$PWD/tmake-1.11
- export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
- export PATH=$TMAKEDIR/bin:$PATH
2. 安装Qt/Embedded 2.3.7
在Linux 命令模式下运行以下命令:
- tar xfz qt-embedded-2.3.7.tar.gz
- cd qt-2.3.7
- export QTDIR=$PWD
- export QTEDIR=$QTDIR
- export PATH=$QTDIR/bin:$PATH
- export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
- ./configure -qconfig -qvfb -depths 4,8,16,32
- make sub-src
- cd ..
上述命令 ./configure -qconfig -qvfb -depths 4,8,16,32 指定Qt 嵌入式开发包生成虚拟缓冲帧工具qvfb,并支持4,8,16,32 位的显示颜色深度。另外我们也可以在configure 的参数中添加-system-jpeg 和gif,使Qt/Embedded 平台能支持jpeg、gif格式的图形。
上述命令 make sub-src 指定按精简方式编译开发包,也就是说有些Qt 类未被编译。Qt 嵌入式开发包有5 种编译范围的选项,使用这些选项,可控制Qt 生成的库文件的大小,但是您的应用所使用到的一些Qt 类将可能因此在Qt 的库中找不到链接。编译选项的具体用法可运行./configure -help 命令查看。
3. 安装Qt/X11 2.3.2
在Linux 命令模式下运行以下命令:
- tar xfz qt-x11-2.3.2.tar.gz
- cd qt-2.3.2
- export QTDIR=$PWD
- export PATH=$QTDIR/bin:$PATH
- export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
- ./configure -no-opengl
- make
- make -C tools/qvfb
- mv tools/qvfb/qvfb bin
- cp bin/uic $QTEDIR/bin
- cd ..
根据开发者本身的开发环境,也可以在configure 的参数中添加别的参数,比如-no-opengl 或-no-xfs,可以键入./configure -help 来获得一些帮助信息。如果Qt/Embedded 的应用是在UNIX 平台下开发的话,那么它就可以在开发的机器上以一个独立的控制台或者虚拟缓冲帧的方式来运行,对于后者来说,其实是有一个X11的应用程序虚拟了一个缓冲帧。通过指定显示设备的宽度,高度和颜色深度,虚拟出来的缓冲帧将和物理的显示设备在每个像素上保持一致。这样每次调试应用时开发人员就不用总是刷新嵌入式设备的FLASH 存储空间,从而加速了应用的编译、链接和运行周期。
运行Qt 的虚拟缓冲帧工具的方法是:在Linux 的图形模式下运行命令:qvfb (回车)当Qt 嵌入式的应用程序要把显示结果输出到虚拟缓冲帧时,我们在命令行运行这个程序时,在程序名后加上-qws 的选项。例如: $> hello -qws
二、QT/E的安装。
在本机中安装了包括QT4.0.1(WINDOWS版本)以及QT/E2。3。7(LINUX版本)。
QT/E我安装在我的虚拟机中。因为QT/E2.3.7的版本问题,其适宜在REDHAT9。0版本(或更低版本)下安装,否则安装不成功。
QT/E安装过程复杂,具体细节可以参考下面这篇文章。《Qt/Embedded开发环境建立的过程》
本机下虚拟机中QT/E安装路径为:/home/wangxl/QTE/qt-2.3.7
QT/X11安装路径为:/home/wangxl/QTE/qt-2.3.2
Tmake安装路径为:/home/wangxl/QTE/Tmake-1.8
QT/E下载地址为:ftp://ftp.rediris.es/mirror/Qt/source/
Tmake下载地址为:ftp://ftp.trolltech.com/freebies/tmake/
三、QT与QT/E以及QT3与QT4之间的区别
相对来说QT与QT/E的语法一样,所不同之处在库类大小或者库类函数大小不同而已。QT/E相对于QT来说,不具有少数类或者少数函数的支持。具体QT/E是否包含某个类或者包含某个类中的函数,我的方法是在QT/E安装目录下的include文件夹中去查找。
QT3和QT4有很多不同点,主要不同也是在于库类以及支持函数有所变化,比如,有些QT3中的函数,在QT4中被其他函数名所代替,因此很多QT4程序在QT3环境下无法执行。QT/E2.3.7与QT3基本相同,除了我前面提到的QT与QT/E的差别。
#p#
四、QT/E编译与执行。
1.在QT/E编译与执行前要先设置TMAKE与QT/E LIB环境,具体方法如下:
- [root@localhost tmake-1.8]# export TMAKEDIR=$PWD
- [root@localhost tmake-1.8]# export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
- [root@localhost tmake-1.8]# export PATH=$TMAKEDIR/bin:$PATH
- [root@localhost qt-2.3.7]# export QTDIR=$PWD
- [root@localhost qt-2.3.7]#export QTEDIR=$QTDIR
- [root@localhost qt-2.3.7]#export PATH=$QTDIR/bin:$PATH
- [root@localhost qt-2.3.7]#export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
2.如果你是用DESIGNER工具设计的界面(后面有讲),则要将*.ui文件转换成*.h文件和*.cpp文件。转换方法如下:
- uic –o test.h test.ui
- uic –o test.cpp –i test.h test.ui
3.编写一个*.pro文件(用来生成Makefile文件用),该文件格式比较固定。
如test.pro文件基本格式如下(以test.cpp ,test.h main.cpp为例子):
- EMPLATE = app
- CONFIG += qt warn_on release
- HEADERS = test.h
- SOURCES = test.cpp \
- main.cpp
- TARGET = hello
- DEPENDPATH=/home/wangxl/QTE/qt-2.3.7/include
- REQUIRES=
4.生成Makefile文件
方法为:tmake –o Makefile test.pro
5 编译生成可执行文件
- make
6 打开QVFB
进入安装QT/X11所在目录, 在BIN目录下执行程序qvfb。有时候需要修改qvfb执行时的deptb参数才能够执行QT/E程序。可以直接在QVFB打开窗口的Configure彩单项中选择,也可以用如下命令执行QVFB。
- ./qvfb –width ** -height ** -depth **
7.执行QT/E程序
如 。/TEST
在QVFB程序打开的窗口中将出现TEST程序的显示 。
五、Qt/e与QT/X11
安装QT/E的同时还需要安装QT/X11与Tmake,Tmake 是用来帮助生成Makefile文件的。安装QT/X11主要是向QT/E提供designer工具和qvfb工具的。Designer可以用来设计图形界面,最后生成.ui文件,可通过UIC命令转换为相应的C++文件。QVFB模拟帧缓冲,提供QT/E程序的显示平台。
六、QT/E 程序ARM 板上执行
在我虚拟机上可以执行的QT/E程序不能在ARM板上执行,需要对QT/E进行重新编译,并需要设置响对于ARM板系统的编译环境,具体方法可以参考我另外的一文《QT/E开发记录》
七、QT/E支持中文显示问题
QT/E需要字体转换才能显示中文。具体方法可以参考我另外的一文《QT/E开发记录》。但是由于缺少UNICODE的QPF文件的字体,中文字大小不均匀问题尚没解决。
小结:关于Qt Embedded 环境安装,讲到这个地方,希望你能用到!
【编辑推荐】