这是一个在非常用环境下的Qt与VC的整合实验报告。在此过程中以下软件被用到:
因为需要在一台Vista机器下修改一个在VC2005Pro+Qt4.3.2+Qt Integration等商用软件组成的开发环境下的Qt工程,而又没有商业软件可装,只好自行摸索。在Visual Studio 2005商业版下用Qt Integration来建立一个Qt4开发平台是很容易的,在此不再赘述。可参见本文末尾的参考资料。
既然是用VC2005来写的,那么想到首先安装Visual C++ 2005 Express Edition,至少这样才能打开VC2005的工程文件。Web Install和光盘镜像二选一。因为只需要在一台机器安装,而且只安装VC,于是下载VC2005Ex的Web Install文件,开始安装。不需要MSDN,仅安装IDE的话,很快就能下载并安装好。
安装好之后重新启动,运行Vista的Windows Update,将VC2005Ex更新到SP1+Vista专用补丁。启动VS2005Ex提示建议在管理员权限下运行Visual Studio 2005,于是直接将UAC关掉了,再重启。
接下来安装SDK,也是Web Install和镜像二选一。我选择了Web Install,这样可以只安装其中的部分组件。具体来说就是前两项Core和Web两部分即可。也不大,很快就可以下载安装好了。然后运行程序组里的Microsoft Platform SDK for Windows Server 2003 R2\Visual Studio Registration\Register PSDK Directories with Visual Studio。不过我也不确定这一步是否有用。
下载Qt4.3.2并解压缩到C:\Qt\4.3.2-msvc2005\,增设系统环境变量QTDIR=C:\Qt\4.3.2-msvc2005,增设系统环境变量QMAKESPEC=win32-msvc2005。这个版本的Qt不需要打Windows补丁就可以在Windows下正常编译,因此不需要资料2和资料3中提到的打补丁步骤。而且由目前的Qt发展趋势来看,以后对Windows的支持应该会越来越好,所以估计以后也不用。
以上SDK的安装和Qt的解压缩主要是为了对Qt进行编译和“安装”。在Visual Studio 2005商业版中直接包括了编译相关的头文件,并设置了相关的环境变量,因此可以直接编译。而Visual C++ 2005 Express则没有相关的头文件,也没有做好环境变量设置。前面两步是为了准备好相关的头文件和Qt的编译用源文件。下面要做的就是准备编译相关的环境变量设置了。刚才准备好了QTDIR和QMAKESPEC,现在做VC相关的设置。
原先如果要在VC下编译东西的话,是执行Visual Studio 2005 Command Prompt,这个程序会首先执行一个bat文件用来设置环境变量。因此虽然我们理论上讲可以手动设定环境变量,不过通常还是直接用这个临时的编译环境。其实这个环境已经配置得比较好了,只是缺一点,所以,现在要做的就是手动加上Windows Server 2003 R2 SDK的目录。因此打开%PROGRAMFILES%\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat,进行修改。注意:如果你在Vista下并打开了UAC可能不能修改。
如下所示,增加SDK的路径(以安装到C:为例):
原来的PATH:
@set PATH=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;%PATH%
修改后的PATH:
@set PATH=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin;%PATH%
原来的INCLUDE:
@set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;%INCLUDE%
修改后的Include:
@set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include;%INCLUDE%
原来的LIB:
@set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB%
修改后的LIB:
@set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib;%LIB%
保存后运行Visual Studio Command Prompt快捷方式或在命令行运行vsvars32.bat都可以构建好编译环境。在构建好的命令行下运行configure.exe即可。具体参数可以参见help。不过按照资料1的configure -no-stl -no-dsp -vcpro即可。等一会儿之后,qmake就被生成。接着运行nmake,就是完全的编译过程了。这里可能要花上数个小时。不仅和CPU性能有关,而且和磁盘性能有关。CPU性能强悍的笔记本未必能跑过CPU较弱的台式机。总之,慢慢等就是了。
编译完之后,最后再在系统环境变量的PATH里加入%QTDIR%\BIN,确保Visual C++ 2005 Express能找到相关的外部程序就可以了。
之所以说是不完全整合,是因为这样弄下来的VC2005 Express只能打开和修改VC2005商业版已经建立好的工程,还不能自己建立新的Qt工程。不过基本的编译、运行、调试都没问题。作为在一台Vista机器上的临时紧急解决方案,还是可以了。故写出来抛砖引玉,与大家分享。在资料3中有相关的如何建立Qt工程的信息,供希望进一步钻研的高手们参考。
注:在VCExpress下Visual Assist X不能用。
参考资料:
1、在Visual Studio 2005中安装Qt 4.3.2, 查看
2、Building QT 4 with Visual C++ 2005 查看
3、HowTo Setup Qt 4.2.2 With Visual C++ Express (Free) Edition, 查看
你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=6768400