用Visual studio 2008编译安装Qt4.5.0

来源:互联网 发布:宁泽涛小区郑州知乎 编辑:程序博客网 时间:2024/05/17 21:52

用Visual studio 2008编译安装Qt4.5.0
2009-06-07 21:45

本文的目的是记录自己编译Qt4.5.0的过程,并将其整合到Visual studio 2008中的过程。
具体的过程分为如下的几步:
//------------------------------------------------------------------------------------------------------------------------

前期准备:

安装前,需要准备如下的软件包:
Visual studio 2008 (可以是各个版本,从Express版到team system均可以)
这次编译过程使用的具体环境:Windows 7 build 7100 + Visual studio 2008 sp1 (Windows vista或windows xp可能在操作上有一些不同,具体没有试)。
Qt的最新版针对Windows的源码(qt-win-opensource-src-4.5.0-beta1.zip)。注意是源码,不是二进制安装包,可以从Qt的官网上下载到。

//------------------------------------------------------------------------------------------------------------------------
系统配置:
将下载到得Qt源码解压到一个目录中,注意,这个目录的路径中不能有空格或汉字,不然会导致编译失败,我的目录是D:/Qt/4.5.0-msvc2008。


环境变量设置:
在资源管理器中定位到../Microsoft Visual Studio 8/Common7/Tools中找到vsvars.bat文件,用一个文本编辑器打开,在其中查找PATH,在PATH=后添加D:/Qt/4.5.0-msvc200,在下面的INCLUDE=后添加D:/Qt/4.5.0-msvc2008/include,在LIB=后添加D:/Qt/4.5.0-msvc2008/lib。保存。注意,如果是Windows Vista或Windows 7可能会因为权限问题无法保存,这个需要你获得该目录的修改权,然后才能保存,具体方法用google或百度都可以解决,还有一个取巧的方法,先将这个文件另存到系统盘以外的另外的目录中,然后在资源管理器中将它复制到../Microsoft Visual Studio 8/Common7/Tools中覆盖原来的vsvars.bat,UAC会提示你是否覆盖,选择是就行了,当然,这里的前提是你目前的账户类型必须是Administrator才行。

//------------------------------------------------------------------------------------------------------------------------

具体的编译过程:
使用visual studio 2008提供的“Visual Studio 2008 命令提示“,可以在开始菜单中的Microsoft Visual studio 2008项中找到”,这个工具其实就是加载了vsvars.bat的cmd.exe,在windows vista和Windows 7中一定要从右键菜单中选择以管理员身份运行,不然可能要出问题。
切换到Qt的源码目录中,我的/D:/Qt/4.5.0-msvc2008,输入如下命令:
D:/Qt/4.5.0-msvc2008>configure.exe -h >> d:/help.txt
这个命令将configure.exe文件的使用帮助输出到D盘下的help.txt中,可以对照着这个文件选择configure.exe的参数,再次执行configure.exe,加上相应的参数,来控制配置make文件的选项。我的输入是:
D:/Qt/4.5.0-msvc2008>configure.exe -debug-and-release -graphicssystem opengl -3dnow -sse -sse2 -direct3d -qt-style-windowsxp -qt-style-windowsvista -openssl
这个命令会产生一大堆输出,大约有十分钟左右执行时间,这是我的机器上的执行时间,其他机器可能会有差别。注意最后编译选项,如果需要openssl,需要添加该选项。且设置openssl的路径:SET LIB=%LIB%;C:/openssl-0.9.8k/out32dll
SET INCLUDE=%INCLUDE%;C:/openssl-0.9.8k/inc32
执行完毕后在输入如下:
D:/Qt/4.5.0-msvc2008>nmake
这个过程可能需要几个小时,我的机器上从上午11:30左右一直执行到下午4:40才结束,我想如果机器性能好的话可能时间会短一些。
如果幸运的话没产生什么错误,编译到此结束。如果产生错误,检查前面的步骤,重新配置,执行configure.exe。根据我的经验,产生错误的原因可能有如下:
1.Qt源码所在的目录的路径中含有空格或汉字,如果是这样的话可能configure阶段就会报错。
2.vsvars.bat没有设置好,或windows vista和windows 7中没有以管理员身份运行“Visual Studio 2008 命令提示”。
3.在configure.exe的参数中加入了源码中不包含的属性,如我原来在configure.exe后的参数中有-openssl,结果出现错误导致编译失败。在加入configure帮助中Third Party Libraries:类别的参数时要特别的注意,因为有些第三方的库Qt官方源码中是不提供的,需要自己下载并添加。
4.nmake文件找不到,这种情况如果运行的是普通的cmd.exe的话会出现,但是如果运行的是“Visual Studio 2008 命令提示”的话不会出现。
5.磁盘空间不够,编译是很占用磁盘空间的,Qt源码所在的磁盘最少要留有10GB的空间,我的源码目录在编译完成后有39,758 个文件,4,079 个文件夹,大小有9.81 GB,呵呵,庞然大物啊!!!幸亏我的硬盘有200GB,还没被吓到。


//------------------------------------------------------------------------------------------------------------------------
安装后的系统配置:
环境变量设置:
在path变量中增加D:/Qt/4.5.0-msvc2008/bin
创建变量QMAKESPEC,值为 win32-msvc2008,win32-msvc2008指定具体的VC版本,VC6.0对应的是win32-msvc,VC7.0对应的是win32-msvc.net,VC2005对应的是win32-msvc2005等。
创建QTDIR值为D:/Qt/4.5.0-msvc2008/bin。
//------------------------------------------------------------------------------------------------------------------------


终于可以喘口气了,赶快编写一个小程序试试吧。

//------------------------------------------------------------------------------------------------------------------------
为什么要自己编译Qt,使用官方的二进制安装包不行么?
官方针对Windows只提供了基于MinGW编译器的二进制安装包,如果想要使用Visual studio进行开发的话,肯定不能用,我想Windows程序员没有几个人喜欢重新操起notepad等文本工具编码,手动qmake,再make的石器时代吧。
如果你想不花钱拥有Qt商用许可版本的功能,只能通过自己编译这条路了,我们这是需要做的就是下载Qt的Visual Studio的整合包qt-vs-addin-1.0.1.exe,安装,就可以在Visual studio中建立Qt工程,编码,调试了。
如果你想在Qt中使用Direct3D的话,那么也只有自己编译了,要知道官方提供的开源安装包只支持OpenGL,不支持D3D。
自己编译,有一种使用上的良好的心理优越感,呵呵。
//------------------------------------------------------------------------------------------------------------------------
<完>