• 7442阅读
  • 5回复

使用EasyMinGWToolkit编译Qt 4.6.2,支持Phonon [复制链接]

上一主题 下一主题
离线shiyutang
 
只看楼主 倒序阅读 楼主  发表于: 2010-03-03
上次我发了帖子“完整易用免费的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.在命令提示符中输入
  1. set QMAKESPEC=win32-g++

6.切换目录到C:\Qt\4.6.2
7.开始configure。我用的命令是:
  1. 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需要数分钟,完成后,可以开始编译,命令是:
  1. mingw32-make

编译过程可能需要5个小时;
9.编译完成后,如果没提示错误,那么就正确完成了。可以发现C:\Qt\4.6.2这个文件夹占4G多空间。可以使用以下命令来清除编译时生成的中间文件:
  1. mingw32-make clean

清理完成后大概还占2.5G空间;
10.如果您需要占的空间更小,可以删除examples和demos文件夹中所有的debug的可执行文件(用不着);然后还可以把bin、examples、demos文件夹中的exe文件strip一下,以更进一步减少占用的空间。

附:自动删除用不着的debug的可执行文件的Perl程序:
  1. use File::Find;
  2. sub process {
  3.     my $file = $File::Find::name;
  4.     if(-f $file){
  5.         my $sfile=$file;
  6.         if($file =~ /debug.*exe$/){
  7.             print $sfile."\n";
  8.             unlink $sfile;
  9.         }
  10.     }
  11. }
  12. find(\&process, 'C:/Qt/4.6.2/');


自动为所有可执行的exe文件进行strip的Perl程序:
  1. use File::Find;
  2. sub process {
  3.     my $file = $File::Find::name;
  4.     if(-f $file){
  5.         my $sfile=$file;
  6.         if($file =~ /\.exe$/){
  7.             print $sfile."\n";
  8.             my $scmd = "strip -s ".$sfile;
  9.             system($scmd)==0 or die("system $scmd failed: $?");
  10.         }
  11.     }
  12. }
  13. find(\&process, 'C:/Qt/4.6.2/');
[ 此帖被shiyutang在2010-03-03 20:55重新编辑 ]
离线wd007

只看该作者 1楼 发表于: 2010-03-03
楼主有创意,顶一下。

不过这么复杂,一般的朋友很难会选择这种方式的
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线shiyutang
只看该作者 2楼 发表于: 2010-03-03
因为Qt自带的MinGW编译器有问题,显示警告和错误会乱码,所以不得不重新编译。编译一下也好,加深理解。
离线磐石
只看该作者 3楼 发表于: 2010-03-04
引用楼主shiyutang于2010-03-03 19:28发表的 使用EasyMinGWToolkit编译Qt 4.6.2,支持Phonon :
上次我发了帖子“完整易用免费的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:Qt4.6.2,这个文件夹里有Qt的源代码;
3.把文件C:MinGWincludefloat.h复制一份到C:Qt4.6.2include文件夹中。这是因为一个莫名其妙的问题让编译失败,于是只能这样复制来解决了;
.......

按这个方法,今天下午编译了五个多小时,但等到最后出来的是,这样一个错误
g++:createProcess: No such file or directory
我用的是Qt4.5.2
请楼主帮忙看一下,谢谢
不怕做不到,只怕想不到
离线shiyutang
只看该作者 4楼 发表于: 2010-03-04
引用第3楼磐石于2010-03-04 18:05发表的  :
按这个方法,今天下午编译了五个多小时,但等到最后出来的是,这样一个错误
g++:createProcess: No such file or directory
我用的是Qt4.5.2
请楼主帮忙看一下,谢谢


你是用我发的那个EasyMinGWToolkit环境吗?那环境变量设置好了吗?

4.5.2我也没编译过,只编译了了4.6.2。这个工作正常。之前用官方SDK中QUdpSocket出错的问题也没有了。
离线磐石
只看该作者 5楼 发表于: 2010-03-05
引用第4楼shiyutang于2010-03-04 22:44发表的  :
你是用我发的那个EasyMinGWToolkit环境吗?那环境变量设置好了吗?
4.5.2我也没编译过,只编译了了4.6.2。这个工作正常。之前用官方SDK中QUdpSocket出错的问题也没有了。

恩,是用你发的那个的,环境变量也设好了,编译了五个多小时后才出现这个问题,我感觉是因为版本问题吧,改天我直接用4.6.2的试试, 我想问一下,以前我用4.5.2编写的程序应该在4.6.2里都能编译通过的吧
不怕做不到,只怕想不到
快速回复
限100 字节
 
上一个 下一个