资源描述
QT完全手册
嵌入式工具Qt安装与使用
摘要
Qt是Trolltech公司一种产品。Trolltech是挪威一家软件公司,重要开发两种产品:一种是跨平台应用程序界面框架;此外一种就是提供应做嵌入式Linux开发应用程序平台,可以应用到PDA和各种移动设备上。Qt和 Qtopia分别是其中具备代表性两个。(-05-05 10:52:14)
--------------------------------------------------------------------------------
By lanf,出处:
作者:胡利民 本文选自:开放系统世界
Qt是Trolltech公司一种产品。Trolltech是挪威一家软件公司,重要开发两种产品:一种是跨平台应用程序界面框架;此外一种就是提供应做嵌入式Linux开发应用程序平台,可以应用到PDA和各种移动设备上。Qt和Qtopia分别是其中具备代表性两个。
Qt是一种多平台C++图形顾客界面应用程序框架,它能给顾客提供精美图形顾客界面所需要所有元素,并且它是基于一种面向对象思想,因此顾客对其对象扩展是相称容易,并且它还支持真正组件编程。
Qt是Linux桌面环境KDE基本。笔者以为,可以说Qt与Windows下Mfc实质是同样,因此Qt最大长处在于其跨平台性,可以支持既有各种操作系统平台,重要有:
◆ MS/Windows 95、Windows 98、WindowsNT 4.0、Windows 、Windows XP;
◆ Unix/X11 Linux、Sun Solaris、HP-UX、Compaq True64Unix、IBM AIX、SGI IRIX和诸多其他X11平台;
◆ Macintoshi Mac OSX;
◆ Embedded—带FramBufferLinux平台。
下面简朴简介一下Qt/Embedded和Qtopia在Linux上安装和使用,尚有在开发过程中也许遇到某些问题。
Qt 和Qtopia安装
如果需要安装一种带FramBufferQtopia平台,需要有如下软件(所列举软件以笔者使用为例):
◆ Qtopia 1.6.0;
◆ Tmake 1.11;
◆ Qt/Embedded 2.3.4(Qtopia 1.6.0是基于该开发平台上开发);
◆ Qt/Embedded 2.3.2 for X11;
◆ Qt 3.1.2 for X11。
在Trolltech公司网站上可如下载该公司所提供Qt/Embedded免费版本。
Qtopia平台安装分为如下几种环节:
1. 解包Qtopia
在Linux命令模式下运营如下命令:
tar xfz qtopia-source-1.6.0 (解包)
cd qtopia-source-1.6.0
export QPEDIR=$PWD (设立环境变量)
cd..
2. 安装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
3. 安装Qt/Embedded2.3.4
在Linux命令模式下运营如下命令:
tar xfz qt-embedded-2.3.4-commercial.tar.gz
cd qt-2.3.4
export QTDIR=$PWD
export QTEDIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
. /configure -qconfig qpe -qvfb -depths 4,8,16,32
make sub-src
cd ..
也可以在configure参数中添加-system-jpeg和gif,使Qtopia平台能支持jpeg、gif格式图形。
4. 安装Qt/X11 2.3.2
在Linux命令模式下运营如下命令:
tar xfz qt-x11-2.3.2-commercial.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来获得某些协助信息。
5. 安装Qt/X11 3.1.2
在Linux命令模式下运营如下命令:
tar xfz qt-x11-commercial-3.1.x.tar.gz
cd qt-x11-commercial-3.1.x
export QTDIR=$PWD
export QT3DIR=$QTDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -thread
make
cd ..
6. 安装Qtopia
在Linux命令模式下运营如下命令:
cd qtopia-source-1.6.x
export QTDIR=$QTEDIR
export QPEDIR=$PWD
export PATH=$QPEDIR/bin:$PATH
cd src
./configure
make
cd ../..
7. 安装Qtopia桌面
cd qtopia-source-1.6.x/src
export QTDIR=$QT3DIR
./configure -qtopiadesktop
make
mv qtopiadesktop/bin/qtopiadesktop ../bin
cd ..
Qt和Qt Designer使用
依照上面环节安装完毕了Qt/Embedded和Qtopia之后,就可以运营这些程序了。
运营Qt虚拟仿真窗口:在Linux图形模式下运营命令qvfb&;Qtopia只是一种用Qt/Embedded开发程序,运营Qtopia,在图形模式下运营命令:
export QTDIR=$QTEDIR,
qpe &;
这样Qtopia程序就运营在QVFB上,即Qt虚拟仿真窗口。
Qt/Embedded是针对嵌入式Linux而开发一种开发工具,Qt封装了某些惯用类,并且这些类名字都以Q字开头命名,如QString、QDialog等。这里重要简介一下如何运用Qt Designer来设计组件,并生成相应代码。
在Qt中,把组件分为复合体、原始体和配件。而在Qt中,组件是由某些抽象类、复杂组件类、管理组件几何特性类等构成。
Qt中有三个重要基类:QObject、Qapplication和QWidget。
在Qt 中编程,运用Signal和Slot进行对象之间通信是Qt重要特性。它与Windows中消息机制非常类似,但是Signal和Slot机制真正实现了一种消息封装。当对象状态变化时,发出Signal,告知所有Slot接受Signal,尽管它不懂得哪些函数是Slot,Slot一开始也不懂得哪些Signal可以接受。Signal和Slot之间不是一一相应关系,一种Signal可以发给各种Slot, Slot也可以接受各种Signal。Slot除了可以接受Signal以外,与其他成员函数没有区别。这种机制比使用回调函数要灵活,但是会减慢程序运营速度。但是在当前高速CPU面前,这种损失是无足轻重,并且它还能保证程序简要性和灵活性,非常便利。
在Qt组件中,不但定义了惯用成员变量和成员函数,还定义了所有与该组件有关Signal和Slot。
要将组件组合起来,最简朴办法就是使用Qt Designer。一方面要启动Qt Designer,在Linux命令模式下,键入如下命令(假设Qt安装在/usr/local下):
cd qt-2.3.2/bin
./designer
这样就可以启动一种与Windows下Delphi相类似如图1界面。
然后新建一种QFrame,将自己需要组件直接拖拉到这个Frame中,相信诸多人均有过这样经历,此处就不再详细描述了。完毕之后存盘时,会将这个新组件保存为一种扩展名为.ui文献。假设所存文献名为test.ui,用vi test.ui来查看这个文献,发现这是一种用xml语言写一种文本。下面用这个test.ui生成相应test.h和test.cpp。同样还是在这个目录下,可以看到一种uic工具,这个是Qt专门用来将ui文献生成.h和.cpp文献,在终端模式下键入如下命令:
./uic -o test.h test.ui
./uic -o test.h -i test.cpp test.ui
此时就能看到生成了相应test.h和test.cpp,这是一种类。固然这只是某些表面东西,还需要在这些代码中添加相应Signal和Slot,完毕所需要操作。值得注意是,相应版本生成ui最佳用相应版本uic来生成代码。如果用Qt 3.1.2Designer生成ui,用Qt 2.3.2uic来生成代码,生成代码都会是某些空函数。
在普通开发过程中,一方面通过这个ui生成一种类,在Qt中普通叫做 Base,如上面例子,叫做testBase;然后再新建一种类,来继承这个Base。普通叫做实现类Impl,如testImpl。在这个实现类里面定义所需要成员函数、Signal和Slot,由于ui也许是经常需要改动。如果这样做,每次只需要在Designer中修改ui,而不用去理睬这些成员函数、Signal和Slot了。
编译一种Qt程序必然需要Makefile,在Qt中提供了一种专门生成Makefile工具,就是tmake。用tmake需要依照编写程序写一种.pro文献。.pro文献非常简朴,有固定格式,下面是一种例子:
TEMPLATE = app
CONFIG = qtopia warn_on release
MOC_DIR =tmp
OBJECTS_DIR =tmp
HEADERS =fcrs.h\
structs.h \
globalfunc.h \
globalvars.h \
testimpl.h
SOURCES = main.cpp \
globalfunc.cpp\
globalvars.cpp \
testimpl.cpp
INTERFACES = test.ui \
TARGET = fcrs
生成这个.pro文献之后,在终端中键入下面命令:
tmake -o Makefile test.pro
就自动生成了一种Makefile,使用这个Makefile编译所编写程序就可以了。
Qt/Embedded开发环境建立过程
--------------------------------------------------------------------------------
Qt/Embedded开发环境建立过程:
(这些软件可以免费从trolltechWEB或FTP服务器上下载)
◆ tmake 1.11 或更高版本; (生成Qt/Embedded应用工程Makefile文献)
◆ Qt/Embedded 2.3.7 (Qt/Embedded 安装包)
◆ Qt 2.3.2 for X11; (QtX11版安装包,它将产生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://
二.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差别。
三.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开发记录》
但是由于缺少UNICODEQPF文献字体,中文字大小不均匀问题尚没解决。
七 QT/E某些参照资料:
http://www.qtcn.org/bbs/index.php QT中文论坛
(关于QT3类,以及类函数可以在这寻找)
提供QT3编程最佳书籍电子版本《C++ GUI Programming with QT 3》(本机)
关于QT4可以参照QT ASSISTNAT(本机中),此外QT ASSISTNAT中也可以查找QT3类及库等。
设立Qtopiabuild环境
1、环境变量
在目的系统上build Qtopia必要设定必要环境变量,如QTDIR, 如果依赖各种版本Qt,则需要用环境变量指向用到库配备。
一种办法是将环境变量设定写入文献,通过运营source命令应用文献内容。
举例阐明:
Linux/bash下建立环境变量设定文献qtopia.sh, 内容如下:
export QPEDIR=/opt/Qtopia
export QTDIR=/opt/Qtopia
export PATH=$QTDIR/bin:$PATH
export TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-generic-g++
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
需要时运营 source qtopia.sh即可应用以上环境变量。
此外也可以通过在.bashrc文献中设定别名来应用这些环境变量。 假设环境变量设立文献存储在home目录bin下, 则可在.bashrc中加入:
alias qtopia='source ~/bin/qtopia.sh'
2、创立自定义配备文献
整个Qtopia系统在build过程中需要三个独立配备系统:
1) Qt/Embedded 配备文献
2) tmake - 用于build Qtopia 1.x和某些第三方软件
3) qmake - 用于build Qtopia 2及以上版本
在build Qtopia此前,先要完毕以上三项配备。
下面是创立一种“myarm”配备例子:
cp -r $TMAKEDIR/lib/qws/linux-arm-g++ $TMAKEDIR/lib/qws/linux-myarm-g++
cp -r $QTEDIR/configs/linux-arm-g++-shared $QTEDIR/configs/linux-myarm-g++-shared
cp -r $QPEDIR/mkspecs/qws/linux-arm-g++ $QPEDIR/mkspecs/qws/linux-myarm-g++
Qt/Embedded
编辑$QTEDIR/configs/linux-myarm-g++-shared, 修改其中utilities和flags成适合系统内容, 如:
也许需要修改SYSCONF_CXX,SYSCONF_CC 和SYSCONF_LINK, 指定对的编译器. 也许需要增长编译选项-DMYARM,在代码中增长宏#ifdef MYARM(用以增长设备有关代码)
tmake
编辑$TMAKEDIR/lib/qws/linux-myarm-g++/tmake.conf,修改用到utilites和flags:
也许需要修改TMAKE_CC,TMAKE_CXX 和TMAKE_LINK
也许需要增长-DMYARM选项
qmake
修改$QPEDIR/mkspecs/qws/linux-myarm-g++/qmake.conf:
QMAKE_CC,QMAKE_CXX 和QMAKE_LINK
-DMYARM
注意:qmake.conf最后一行必要是:
exists($$(QPEDIR)/src/config.pri):include($$(QPEDIR)/src/config.pri)
可用于目录名字符
正则表达式字符
Qtopia 1.9.x和Qtopia 2.0.0 - 2.1.0对字符有如下规定:
Qtopia build系统访问到任何目录都不能包括正则表达式字符
任何能被QRegExp辨认特殊字符和字符序列都也许引起问题
'.'字符只匹配自身
不要将正则表达式字符用于目录名,涉及(但不但限于):+ . ?* \ () [] ^ $ {}
注:Qtopia 2.1.0和2.1.1及以上版本可以通过应用patch解除以上限制
空格
Qtopia build系统不支持目录名中包括空格。
必要保证:
build系统访问到目录不包括空格
访问目录各层上级目录也不包括空格
Qtopia依赖和必要条件
简介
为了使Qtopia对的运营, 必要满足如下必要条件:
安装恰当编译/交叉编译工具
Qt/Embedded-2.3.11
Linux kernel提供共享内存、mmap和socket支持
Linux支持frame buffer
Linux支持OSS声音或支持与OSS兼容ALSA声音。 进一步信息参照 The Qtopia A/V & Appearance FAQ
还需要如下库:
Video4Linux
zlib
libuuid(aka luuid)
libjpeg
xorg 或X11
注:Freetype不是必要但建议支持
支持编译器和交叉编译器
gcc-2.95.2
gcc 3.2.4
gcc-3.3.0,gcc-3.3.3,gcc-3.3.4
gcc-3.4.1
声音
Qtopia需要/dev/dsp可写,并支持如下ioctl操作:
SNDCTL_DSP_SETFRAGMENT - Qtopia将这个值设立为0x4000c.
SNDCTL_DSP_SETFM - Qtopia设立为AFMT_S16_LE
SNDCTL_DSP_STEREO - Qtopia 设立为 1/true.
SNDCTL_DSP_SPEED - Qtopia设立为44100.
SNDCTL_DSP_GETOSPACE
Qtopia 还需要/dev/dsp可以以阻塞方式和非阻塞方式打开。 以上设定是Qtopia需要设定,但可以容许少量偏差,但如果不设定成Qtopia需要值则不能保证音频能平滑播放。 如果您设备只支持22500播放速率,则在调用SNDCTL_DSP_SPEED时要报告此速率,以免导致音频质量缺损。 但是,如果系统不支持GETOSPACE,非阻塞写入或 SNDCTL_DSP_SET_FRAGMENT, 几乎可以必定必然会损失音频质量。
Video4Linux
Camera应用程序需要支持Video4Linux v1内核, Qtopia没有提供该支持。
请参照官方 Video for Linux 资源站点,参看API详细内容。
zlib
zlib可以从 http://www.gzip.org/zlib/ 下载
libuuid(aka luuid)
Qtopia不提供uuid支持。 这个库可以从 站点下载
此外, 如果你有SuSE Linux发行版, e2fsprogs-devel这个包可以提供uuid支持; 在Debian中相应包是uuid-dev. 这个库应当放在原则路经下/usr/lib/libuuid.so
请用包管理工具来查看该包与否已经安装:
rpm -qa | grep e2fsprogs
如果尚未安装,请从安装盘或镜像站安装这个包。
需要注意是,如果没有安装e2fsprogs-devel,在链接时会发生下面错误:
/usr/lib/gcc-lib/i586-suse-Linux/3.3.3/../../../../i586-suse-linux/bin/ld:
cannot find -luuid
如果安装了该库仍遇到上述错误,则检查Qtopiaconfigure脚本-L和-R参数, 以拟定脚本包括了库实际途径。 关于交叉编译信息可参照 System Integrator's Guide.
libjpeg
Qtopia不提供jpeg库。 Qtopia需要Qt/Embedded配备为支持jpeg。
libjpeg库可从 http://www.ijg.org/ 下载
此外,如果你有SuSE发行版, libjpeg这个包可提供该库。 这个库应当安装在原则路经/usr/lib/libjpeg.so
检查libjpeg包与否已经安装:
rpm -qa | grep libjpeg
如果未安装,请从安装盘或镜像站安装。
关于libjpeg交叉编译信息, 可参照System Integrator's Guide.
xorg或X11
开发涉及有从如下站点下载:
http://www.xfree86.org/
http://xorg.freedesktop.org
有关讨论
决定开始Qtopia需要环节, 参照: Getting started
将Qtopia集成到特定设备上重点环节, 参照: System Integrator's guide
QtopiaFAQs,参看: Qtopia index page
系统是完全安装RedHat9.0(里面带QT3.1),板子是X-Hyper250B,Toolchain用是开发板带hybus-arm-linux-R1.1
交叉编译所用到文献:
qt-embedded-2.3.10-free.tar.gz
qt-x11-2.3.2.tar.gz
qtopia-free-source-2.1.1.tar.gz
tmake-1.13.tar.gz
e2fsprogs-1.35.tar.gz
主机x86编译环节:
tar xfz qt-embedded-2.3.10-free.tar.gz(解压后qt-2.3.10改名为qt-2.3.10-host)
export QTEDIR=$PWD/qt-2.3.10-host
tar xfz qt-x11-2.3.2.tar.gz(解压后qt-2.3.2)
export QT2DIR=$PWD/qt-2.3.2
tar xfz qtopia-free-source-2.1.1.tar.gz(解压后qtopia-free-2.1.1改名为qtopia-2.1.1-host)
export QPEDIR=$PWD/qtopia-2.1.1-host
tar xfz tmake-1.13.tar.gz(解压后tmake-1.13)
export TMAKEDIR=$PWD/tmake-1.13
export TMAKEPATH=$PWD/tmake-1.13/lib/qws/linux-x86-g++
export PATH=$TMAKEDIR/bin:$PATH
cd qt-2.3.2
export QTDIR=$QT2DIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -no-xft
make
make -C tools/qvfb
cd ..
cd qt-2.3.10-host
export QTDIR=$PWD
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
mkdir bin (由于解压后qt-2.3.10没有bin文献夹)
cp $QT2DIR/bin/uic bin
cp $QT2DIR/tools/qvfb/qvfb bin
cp $QPEDIR/src/qt/qconfig-qpe.h src/tools/
./configure -qconfig qpe -qvfb -thread -system-jpeg -gif -depths 4,8,16,32
make
cd ..
tar xzf e2fsprogs-1.35.tar.gz
cd e2fsprogs-1.35
./configure -enable-elf-shlibs
make install lib/uuid/
注:这是编译x86libuuid库
cd ..
cd qtopia-2.1.1-host
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QPEDIR/lib:$LD_LIBRARY_PATH
./configure
make
编译例子:
$qmake -project ==>>我都是这样创立.pro文献
$tmake -o Makefile hello.pro
$make
$qvfb &
$./hello -qws 或者$qpe
还没怎么仔细研究过。
展开阅读全文