安装平台为 redhat9.0
本文综合网上教程 根据自己实践综合而来。
首先在这里下载 ftp://ftp.qtsoftware.com/qt/source/
qt-embedded-linux-opensource-src-4.5.1.tar.bz2
qt-x11-opensource-src-4.5.1.tar.gz
qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。下面是安装步骤:
[root@localhost linuxshare]# tar -jxvf qt-embedded-linux-opensource-src-4.5.1.tar.bz2
[root@localhost linuxshare]# tar -zxvf qt-x11-opensource-src-4.5.1.tar.gz
然后把 qt-embedded-linux-opensource-src-4.5.1 分别复制为如图所示
这里,qt-embedded有两个复制:qt-embedded-linux-opensource-src-4.5.1-x86 和qt-embedded-linux-opensource-src-4.5.1-arm,根据他们的名字可以知道前者是适合x架构的,后者适合arm架构为什么需要两个呢?如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编译一个x86架构的也不错。这里是否有些疑问,qt-x11也是适合x86结构的,这不是和qt-embedded重复了吗?答案是这样的,qt-embedded版本只能在嵌入式板子上面运行,编译成x86架构的程序也只能在x86的嵌入式板子上跑。前面说过,我们需要qvfb来开发,但是qvfb只能执行x86架构的应用程序,所以需要让qt-embedded生成关于x86的库和其他文件。而将qt-embedded编译成arm,又是为什么呢?道理很简单,我最终的qt应用程序需要在arm架构上面运行,当然需要这方面的库,所以编译成arm也就顺理成章了。好了,现在简单的总结一下,首先,使用qt-x11提供的库和开发工具开发出qt应用程序,然后使用qt-embedded关于x86库和工具再次编译我们开发qt应用程序,这是所得到的可执行文件就可以在qvfb上运行了,最后,使用qt-embeddedd的arm库再次编译就可以得到在arm上能运行的可执行程序。很明显,如果有开发板,第二步是可要可不要的(最好是要),如果没有开发板的话,第三步也就没必要了,这样就不需要将qt-embedded编译成适合arm架构的。
然后 打开个终端,输入:
1. ln -s /usr/kerberos/include/com_err.h /usr/include/
2. ln -s /usr/kerberos/include/profile.h /usr/include/
3. ln -s /usr/kerberos/include/krb5.h /usr/include/
反正在这个系统里是这样设置的,不然你编译一般就会报出一个关于“krb5.h”的错误。
其他QT版本,如你下到的:“qt-x11-opensource-src-4.4.3.tar.gz”,还需修改里面的一些文件,它会报“`TIFFReadRGBAImageOriented' undeclared”的错误,修改方法:打开 ./src/plugins/imageformats/tiff/qtiffhandler.cpp
把 TIFFReadRGBAImageOriented(tiff, width, height, reinterpret_cast<uint32 *>(tiffImage.bits()), ORIENTATION_TOPLEFT, 0))改为
TIFFReadRGBAImage(tiff, width, height, reinterpret_cast<uint32 *>(tiffImage.bits()), 0)就好了,因为RedHat 9里的 usr/include/tiffio.h没有前一个函数。
下面开始就开始编译安装罗,就等吧。
qt-x11:
./configure -qvfb
make
cd tools/qvfb
make
cd ../..
make install
cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.5.1/bin
qt-embedded:
x86:
./configure
make
make install
arm:
./configure -xplatform pws/linux-arm-g++ -arch arm
make
make install
整个过程大约需要5个多小时。
安装好之后就出现下面的界面,对了,它安装的默认路径是:/usr/local/Trolltech/Qt-4.5.1下面
下面来配置Qt4的环境变量:
1. //打开 /etc/profile 文件,在该文件的末尾加上以下语句:
2. PATH=/usr/local/Trolltech/Qt-4.5.1/bin:$PATH
3. QTDIR=/usr/local/Trolltech/Qt-4.5.1
4. MANPATH=$QTDIR/man:$MANPATH
5. LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
6. export PATH QTDIR MANPATH LD_LIBRARY_PATH
系统默认开启的是Qt3,现在我们来修改,启动Qt3的关联文件在“/usr/bin”下面,找到“designer”,我们发现这个文件果然链接的是Qt3的执行文件,在清楚了designer是个链接,通过designer指向qt3的designer, 现在想让designer默认为qt4的designer, 只要重定向链接。同样,想要qmake也默认为QT4的也一样,只要重定向链接。
1. sudo rm /usr/bin/designer
2. sudo ln -s /usr/local/Trolltech/Qt-4.5.1/bin/designer /usr/bin/designer
3. sudo rm /usr/bin/qmake
4. sudo ln -s /usr/local/Trolltech/Qt-4.5.1/bin/qmake /usr/bin/qmake
我的建议最好把那个跟“/usr/local/Trolltech/Qt-4.5.1”下面的执行文件有关的都修改一下链接。这样便可以彻底的使用QT4了。
QT4默认的字体会出现乱码,我们来设置下,打开qtconfig,选“Forts”按照下图来设置,其他不变。
打开qdesigner出现我们盼望已久的QT4界面
下面我们来安装调试编译环境,这里就不选KDevelop系列了,以为安装起来比较蛮烦,第一RedHat9自带的QT是3.1.1的,要安装KDevelop3.5(可以调试QT4程序),必须要系统Qt版本>=3.3&&<4.0,我还得把Qt升级到3.3,那还不累死啊,所以这里我就选用比较轻量级的QDevelop0.26的,我之所以说是轻量级的,是因为其“安装”(只需要编译(必须要Qt4.3.x)下,然后使用其执行文件)时间很短。
http://qdevelop.org/pages/Downloads
下载“qdevelop-0.25.2.tar.gz”,解压,只需要qmake QDevelop.pro 再make一下,此过程耗时大约十分钟吧。
编译如果出现下面的错误:
1. src/InitCompletion.cpp: In destructor `virtual
2. InitCompletion::~InitCompletion()':
3. src/InitCompletion.cpp:52: parse error before `+' token
4. src/InitCompletion.cpp:53: confused by earlier errors, bailing out
5. make: *** [build/o/unix/InitCompletion.o] Error 1
只需要修改src目录下的InitCompletion.cpp文件:
1. //原文件
2. InitCompletion::~InitCompletion()
3. {
4. QStringList list = QDir( QDir::tempPath() ).entryList(QStringList() << "qdevelop-completion-*", QDir::Files);
5. foreach(QString file, list)
6. {
7. QFile( QDir::tempPath()+"/" + file ).remove();
8. }
9. ........................
10. }
11. // 修改如下
12. InitCompletion::~InitCompletion()
13. {
14. QStringList list = QDir( QDir::tempPath() ).entryList(QStringList() << "qdevelop-completion-*", QDir::Files);
15. foreach(QString file, list)
16. {
17. QString str = QDir::tempPath()+"/";
18. QFile( str + file ).remove();
19. }
20. ........................
21. }
编译好之后便可以运行使用了。
我们来新建一个工程,先感觉下:
Develop的缺点就是不能正常显示中文,郁闷,我只好在其他地方写好,然后粘贴过来。
编译、运行:
下面给我们的程序在桌面上按个家:
这样就可以跟在windows下面开发差不多了。增加了开发效率。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/cuman/archive/2009/05/12/4174456.aspx