
笔记_QTE开发环境.pdf
17页嵌入式工具Qt 的安装与使用摘要Qt 是 Trolltech 公司的一个产品Trolltech 是挪威的一家软件公司,主要开发两种产品:一种是跨平台应用程序界面框架;另外一种就是提供给做嵌入式Linux 开发的应用程序平台,能够应用到PDA 和各种移动设备上Qt 和 Qtopia 分别是其中具有代表性的两个2004-05-05 10:52:14)-By lanf,出处:http:/ 作者:胡利民本文选自:开放系统世界Qt 是 Trolltech 公司的一个产品Trolltech 是挪威的一家软件公司,主要开发两种产品:一种是跨平台应用程序界面框架;另外一种就是提供给做嵌入式Linux 开发的应用程序平台,能够应用到PDA 和各种移动设备上Qt 和 Qtopia 分别是其中具有代表性的两个Qt 是一个多平台的C+图形用户界面应用程序框架,它能给用户提供精美的图形用户界面所需要的所有元素,而且它是基于一种面向对象的思想,所以用户对其对象的扩展是相当容易的,并且它还支持真正的组件编程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 的差别名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -Qt 是 Linux 桌面环境 KDE 的基础笔者认为,可以说Qt 与 Windows 下的 Mfc 的实质是一样的,所以Qt 最大的优点在于其跨平台性,可以支持现有的多种操作系统平台,主要有:MS/Windows 95、Windows 98、WindowsNT 4.0、Windows 2000、Windows XP;Unix/X11 Linux、Sun Solaris、HP-UX、Compaq True64Unix、IBM AIX、SGI IRIX 和很多其它 X11 平台;Macintoshi Mac OSX;Embedded 带 FramBuffer 的 Linux 平台。
QT/E 下载地址为:ftp:/ftp.rediris.es/mirror/Qt/source/Tmake 下载地址为:ftp:/ Qt 在 TrollTech 网站 http:/ 的相关包,包括qt-embedded-free-3.3.4.tar.gz qt-x11-opensource-src-4.2.3.tar.gz tmake-1.8.tar.gz#可以不要,因为有现在这些高版本的qt-embedded,qt-x11,qtopia 里就有 qmake 这 些都是最新的Qt 版本,编译过程好像跟查资料时的老版本的步骤有很大的不同,比如新版本使用qmake 而不像以前使用tmake,还有 configure 脚本文件配置时的参数有许多变化,编译时没有什么资料可以查,除了trolltech 本身的一些文档,剩下的只好自己摸索了下面简单介绍一下Qt/Embedded 和 Qtopia 在 Linux 上的安装和使用,还有在开发过程中可能碰到的一些问题名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -一、概念:QT/E:是 QT 专为嵌入式系统设计的一个GUI,它是直接对显存操作的,不需要,X11 的图象库的支持。
QT/X11:是 QT 为 LINUX平台的 PC 机的 GUI,它需要X11 等几个库的支持QT/WIN:为 windows 下的三种的源代码是相同的(这只是理想情况下,换了平台,代码多少肯定是要改写的)Qtopia(QPE):是一个针对PDA 的嵌入式桌面,包含了一系列的应用程序,同时可以将自己的 QT 程序放到 QPE 里面,通过点击鼠标或触摸屏允许程序Qt 和 Qtopia 的安装如果需要安装一个带FramBuffer 的 Qtopia 平台,需要有以下软件(所列举软件以笔者使用的为例):Qtopia 1.6.0;Tmake 1.11(或更高版本)软件包(主要用来生成Qt/Embedded 应用工程的Makefile 文件)Qt/Embedded 2.3.7(Qtopia 1.6.0 是基于该开发平台上开发的);Qt/Embedded 2.3.2 for X11;(Qt 的 X11 版的安装包,它将产生 x11 开发环境所需要的两个工具)需要注意的是,由于上述软件安装包有许多不同的版本,由于版本的不同可能会造成潜在的冲突而影响使用,一个基本的原则是:选择的Qt for X11 的安装包应该比Qt/Embeedded的安装版本要旧,这是由于Qt for X11 安装包的两个工具uic 和 designer 产生的的源文件会和 Qt/Embedded 的库一起被编译链接,也就是考虑到 向前兼容 的原则。
目前,Qt/Embedded 可以运行在inux 所支持的各种处理器上,包括像Intel X86、ARM、MIPS 和 PowerPC 等处理器上Qt/Embedded 对内存的消耗很低,因为它不需要X 服务器或是 Xlib 库,可以直接的写缓冲帧,对于不使用的功能可以在编译的时候动态调节从而尽可名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -能的减少对内存的使用,例如,在实际使用过程当中不想使用QlistView 这个库,可以通过定义一个 QT_NO_LISTVIEW的预处理标记来实现它甚至可以把全部的应用功能编译链接到一个简单的静态链接的可执行程序中Qt/Embedded 提供了大约200 多个可配置的特征,在 Intel X86 平台上库的大小范围会在700KB 到 5000KB 之间在 Trolltech 公司的网站上可以下载该公司所提供的Qt/Embedded 的免费版本Qtopia 平台安装分为以下几个步骤:*x86下编译 QTE 建立/home/software/x86-qt 目录1.安装 Tmake Tmake 是一个 Makefile 文件生成器,如果不编自己的应用程序,这一步可以省略。
在 Linux 命令模式下运行以下命令:tar-xzf tmake-1.11.tar.gz export TMAKEDIR=/home/software/x86-qt/tmake-1.11 export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g+export PATH=$TMAKEDIR/bin:$PATH 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页 -2.安装 Qt/X11 2.3.2 在 Linux 命令模式下运行以下命令:./include-I.moc/release-shared/-o.obj/release-shared/layout.o layout.cpp tar-xzf qt-x11-2.3.2.tar.gz cd/home/software/x86-qt/qt-2.3.2 export QT2DIR=/home/software/x86-qt/qt-2.3.2 export QTDIR=$QT2DIR export PATH=$QT2DIR/bin:$PATH export LD_LIBRARY_PATH=$QT2DIR/lib:$LD_LIBRARY_PATH echo yes|./configure no-xft-platform linux-g+make make-C$QT2DIR/tools/qvfb/产生 qvfb,是一个模拟显存平台。
make-C$QT2DIR/tools/designer cp$QT2DIR/tools/qvfb/qvfb bin cp$QT2DIR/tools/designer/designer bin cp$QT2DIR/bin/uic$QTEDIR/bin/QT/E 中没有 UIC,把它拷过去cd./configure-no-xft 这一句在优龙文档里是没有-no-xfs 后缀的,但是没有的话会报错,因此加上了-no-xft 后缀,编译顺利通过如果不想加这个后缀,则拷贝名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -/qt-2.3.7/src/3rdparty/freetype/include/freetype文件夹到/qt-x11-2.3.2/lib 目录下即可make-C/public/qt-x11-2.3.2/tools/qvfb 这一句在优龙的文档里是这样的make-C tools/qvfb 经试验发现这样编译通不过,只有输入绝对路径才可以根据开发者本身的开发环境,也可以在configure 的参数中添加别的参数,比如-no-opengl或-no-xft,可以键入./configure-help 来获得一些帮助信息。
根据我的理解,没必要在./configure 后加太多的参数,因为qt-x11-2.3.2 和 qt-2.3.7 是差不多的,编译 qt-x11-2.3.2 的目的就是生成designer 和 uic 和 qvfb,虽然 qt-2.3.7 也可以生成qvfb和 designer,但考虑到向下兼容的原则,用2.3.2 生成的 designer设计出来的程序2.3.7的库一定可以支持如果 Qt/Embedded 的应用是在UNIX 平台下开发的话,那么它就可以在开发的机器上以一个独立的控制台或者虚拟缓冲帧的方式来运行,对于后者来说,其实是有一个X11 的应用程序虚拟了一个缓冲帧通过指定显示设备的宽度,高度和颜色深度,虚拟出来的缓冲帧将和物理的显示设备在每个像素上保持一致这样每次调试应用时开发人员就不用总是刷新嵌入式设备的FLASH 存储空间,从而加速了应用的编译、链接和运行周期编译 Qt/X11 的唯一目的就是为编译QTE 提供 uic(用户接口编译器)以及基于X Windows系统的 FrameBuffer 设备模拟器qvfb当然,如果已经有了这两个工具,再编译Qt/X11 就多此一举了。
Because we need the execution file uic.uic 用来把.ui 文件转换成.h 和.cpp 文件.uic 是 for x86 的文件名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 17 页 -运行 Qt 的虚拟缓冲帧工具的方法是:在Linux 的图形模式下运行命令:qvfb&(回车)当 Qt 嵌入式的应用程序要把显示结果输出到虚拟缓冲帧时,我们在命令行运行这个程序时,在程序名后加上-qws 的选项例如:$./hello qws 3.安装 Qt/Embedded2.3.7 在终端下运行以下tar zxf qt-embedded-2.3.7.tar.gz cd/home/software/x86-qt/qt-2.3.7 export QTEDIR=/home/software/x86-qt/qt-2.3.7 export PATH=$QTEDIR/bin:$PATH export LD_LIBRARY_PATH=$QTEDIR/lib:$LD_LIBRARY_PATH export QTDIR=$PWD cp./qconfig-local.h/home/software/x86-qt/qt-2.3.7/src/tools可以不用这行,下面有改动echo yes|./configure-platform。






![河南新冠肺炎文件-豫建科[2020]63号+豫建科〔2019〕282号](http://img.jinchutou.com/static_www/Images/s.gif)





