2.编译安装的方法
从qt的网站中下载文件qt-x11-opensource-src-4.5.2.tar.gz(在写作本书时采用的就是这个版本,但当你阅读此书时,使用的文件可能已经发生了改变)。在X11中,要把Qt安装到它的默认位置,需要拥有root权限。如果没有root权限,那么请使用config工具的-prefix选项来指定一个你具有操作权限的目录。
第1步:把当前路径切换到你存放下载文件的目录处
例如:
cd /tmp;
第2步:解压缩该压缩文件
命令是:
gunzip qt-x11-opensource-src-4.5.2.tar.gz
tar xvf qt-x11-opensource-src-4.5.2.tar
此时会生成一个/tmp/qt-x11-opensource-src-4.5.2目录。Qt需要的是GNU的tar工具,而在某些系统中它称为gtar。
第3步:运行configure
在整个的编译过程中,configure这一步很关键。configure的作用有两个,一是生成平台相关的qmake;二是配置Qt的Feature,比如源文件放在哪里,库在哪里,是否支持OpenGL等等。
用你喜欢的选项来执行configure工具,它可用于编译Qt库以及与Qt一起提供的工具软件:
cd /tmp/qt-x11-opensource-src-4.5.2
./configure
要查看configure的配置选项列表,可以运行./configure -help命令。
如果configure失败,可以以使用-v选项查看具体的原因,命令是./configure -v
如果以后需要在这次配置的基础上更改选项,先要运行make confclean命令以清除之前的配置。
第4步:执行make
这一步是根据configure时由qmake生成的makefile来编译QT库。只要前面配置好了,一般不会出什么问题。
要编译Qt,输入命令:
make
这样将会生成Qt库,同时也会编译所有的演示程序、示例程序和工具软件。在某些系统中,make命令称为gmake。
第5步:安装Qt
输入命令:
su -c “make install”
然后输入root密码。(在某些系统中,上述命令是:sudo make install)这样就可以把Qt安装到/usr/local/Trolltech/Qt-4.5.2目录中。如果要改变安装路径,那么可以在configure命令的后面使用-prefix选项来做到这一点。如果你已经对安装目录具有写操作权限的话,那么只需输入以下命令即可:
make install
第6步:设置环境变量
如果使用的shell是bash、ksh、zsh或者sh,那么请把以下两行代码添加到.profile中:
PATH=/usr/local/Trolltech/Qt-4.5.2/bin:$PATH
export PATH
如果使用的shell是csh或者tcsh,那么请把下面一行代码添加到.login文件中:
setenv PATH /usr/local/Trolltech/Qt-4.5.2/bin:$PATH
如果使用了configure的-prefix选项,那么请使用你自己指定的路径来代替这里给出的默认路径。
如果你正在使用的编译器不支持rpath命令,那么还必须扩展LD_LIBRARY_PATH环境变量,使其包含/usr/local/Trolltech/Qt-4.5.3/lib。对于带有GCC的Linux用户来讲,则没有必要执行这一步。
第7步:验证安装
在命令行输入:
qmake -v
看看输出是什么。
举个例子,如果你看到的是如下的输出,则表示你的qmake链接指向Qt3.3.8的版本而不是Qt4.5,你需要检查你的安装是否成功,以及环境变量是否配置正确。
[wd@localhost ~]$ qmake -v
Qmake version: 1.07a (Qt 3.3.8)
Qmake is free software from Trolltech ASA.
如果你看到如下的信息,则表示你的Qt 4.5配置成功了。
[wd@localhost ~]$ qmake -v
QMake version: 2.01a (Qt 4.5.2)
QMake is free software from Trolltech ASA.
第8步:删除源码和配置文件
这一步是可选的,运行make clean命令后,可以删除掉本次安装时的源码和配置文件,这样可以节省空间。笔者做过测试,以安装Qt4.5版为例,如果采用configure -static -release的参数编译,执行make clean后,大约可以节省500 Mb的空间。
如果你想以后在不改变原来配置的基础上,多编译一些内容,比如数据库驱动的话,就不要执行这个命令了。
小贴士:如果你还需要要编译Qt3的程序,你最好使用其它的用户进行安装,并建立Qt3对应的环境变量。实际应用中,还存在这种情况,就是系统中自带了Qt3的包,而你又编译安装了Qt4库,那么使用中最方便的调用Qt4库的方法是将命令qmake改为输入qmake-qt4
专题:如何编译数据库驱动
Qt在采用缺省安装参数进行编译安装的情况下,是不配置安装数据库驱动的,所以你如果要驱动数据库,就需要在configure的时候,配置相应的参数。这方面的详细说明,可在安装完成后的Qt Assistant的中搜索与SQL Database Drivers相关的条目查到。
下面说说如何安装psql, odbc, sqlite, mysql的驱动。
在configure的时候,要加上配置项,命令如下:
./configure -plugin-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -plugin-sql-psql
但是在运行的时候,它会可能会提示你测试不到mysql函数。于是,要修改一下文件src/plugins/sqldrivers/mysql/mysql.pro(以上mysql的路径请根据你自己的实际情况调整)。
在最开始处,加上下面两行(具体的目录,需要你自己查看系统的实际位置):
INCLUDEPATH += /usr/include/mysql
LIBS += -L/usr/lib/mysql
保存后,退出来,然后运行:
./configure -plugin-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -plugin-sql-psql -continue
再然后,就和其它的一样了,依次执行:
make
make install
但是在安装后,你会发现,mysql的驱动并未在sqldriver目录下面,于是再转到src/plugins/sqldrivers/mysql/目录下,运行:
make
然后把plugins/sqldrivers/目录下面的libqsqlmysql.so, libqsqlmysql_debug.so这几个文件拷贝到/usr/local/Trolltech/Qt 4.5.2/plugins/sqldrivers目录下面,这样就可以了。
可能有的同学会问到,如果自己已经按照默认的参数配置安装完了Qt4,但又想使用数据库驱动,是不是要重新编译一次呢?从理论上来说,是要重新编译,但实际上不用重新编译,这是由make机制决定的,只要你make install后源代码及编译后的东西没有删除,也就是没有使用make clean命令的话,编译的时候qmake会自动的略过已经编译过的东西,而只编译另外附加的数据库驱动。