上次我发了帖子“
完整易用免费的MinGW开发包,支持Qt及其Phonon组件”,提供了一个完整的MinGW环境,这次我又重新编译了Qt 4.6.2,发现工作良好。下面是编译方法:
1.按帖子“
完整易用免费的MinGW开发包,支持Qt及其Phonon组件”所述,解压EasyMinGWToolkit,然后设置好环境变量;
2.下载Qt 4.6.2的源代码包(位置:
http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.2.zip ),解压缩到C:\Qt中,再把文件夹名改成4.6.2,也就是像这样C:\Qt\4.6.2,这个文件夹里有Qt的源代码;
3.把文件C:\MinGW\include\float.h复制一份到C:\Qt\4.6.2\include文件夹中。这是因为一个莫名其妙的问题让编译失败,于是只能这样复制来解决了;
3.在环境变量中再添加一项,变量名QTDIR,变量值C:\Qt\4.6.2
4.启动一个命令提示符(cmd);
5.在命令提示符中输入
6.切换目录到C:\Qt\4.6.2
7.开始configure。我用的命令是:
- configure -debug-and-release -opensource -shared -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -mmx -3dnow -sse -sse2 -phonon -phonon-backend -webkit -multimedia -script -scripttools -qt-style-windowsxp -qt-style-windowsvista
可以使用configure -help查阅各个选项的含义;
8.configure需要数分钟,完成后,可以开始编译,命令是:
编译过程可能需要5个小时;
9.编译完成后,如果没提示错误,那么就正确完成了。可以发现C:\Qt\4.6.2这个文件夹占4G多空间。可以使用以下命令来清除编译时生成的中间文件:
清理完成后大概还占2.5G空间;
10.如果您需要占的空间更小,可以删除examples和demos文件夹中所有的debug的可执行文件(用不着);然后还可以把bin、examples、demos文件夹中的exe文件strip一下,以更进一步减少占用的空间。
附:自动删除用不着的debug的可执行文件的Perl程序:
- use File::Find;
- sub process {
- my $file = $File::Find::name;
- if(-f $file){
- my $sfile=$file;
- if($file =~ /debug.*exe$/){
- print $sfile."\n";
- unlink $sfile;
- }
- }
- }
- find(\&process, 'C:/Qt/4.6.2/');
自动为所有可执行的exe文件进行strip的Perl程序:
- use File::Find;
- sub process {
- my $file = $File::Find::name;
- if(-f $file){
- my $sfile=$file;
- if($file =~ /\.exe$/){
- print $sfile."\n";
- my $scmd = "strip -s ".$sfile;
- system($scmd)==0 or die("system $scmd failed: $?");
- }
- }
- }
- find(\&process, 'C:/Qt/4.6.2/');
[ 此帖被shiyutang在2010-03-03 20:55重新编辑 ]