本文试着介绍如何在 Visual Studio 2005 里编译 Qt4,并简单介绍一下如何在 Visual Studio 2005 里使用 Qt4。
下载 Windows 版本的源代码后直接进行安装,安装好后,记得把 Qt 的路径添加到系统的环境变量 path 里:
C:\Qt\4.4.3\bin
默认情况下,Qt 是和 MinGW 一起使用的,所以 Qt 会提示你下载安装 MinGW 或是添加已经存在的 MinGW。安装好了再重启一下电脑。
在 Windows 下,我们自然希望 QT 能配合 Visual Studio 来使用,这个时候需要用 VC++ 重新编译一下 Qt 的源代码。这里以 Visual Studio 2005 为例,介绍一下编译 Qt4 的基本方法。
3.1 运行 Visual Studio 2005 的 vsvars32.bat 脚本来为 VC++ 2005 编译器配置系统的环境变量:
C:\>"C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\vsvars32.bat"
Setting environment for using Microsoft Visual Studio 2005 x86 tools.
3.2 编译源代码
通过系统的“开始”菜单,按下面的顺序找到一个属于 VC++ 的 cmd 命令行:
Start => All Programs => Visual Studio 2005 => Visual Studio Tools => Visual Studio Command Prompt
在 cmd 里跳到 Qt 所在的源代码目录
cd C:\Qt\4.4.3
,然后用下面的命令来进行编译:
C:\Qt\4.4.3>configure C:\Qt\4.4.3>nmake
运行 configure 命令的时候会提示确认使用协议,照做就好了。整个编译过程要很长的时间,慢慢等吧。
3.3 编译后的效果
如果成功编译好后,我们应该可以使用下面这些工具了:
为了更方便地使用 Qt,我们需要为系统设置一些环境变量。
4.1 打开 My Computer -> Properties -> Advanced -> Environment Variables,添加一个新的变量 QTDIR ,值如下所示:
QTDIR=C:\Qt\4.4.3
,然后再在 Path 变量里添加如下变量:
%QTDIR%\bin
这一步就是相当于把 C:\Qt\4.4.3 添加到 path 里去,同时也方便在 Visual Studio 里添加链接的路径。
4.2 把 Qt 工程向导添加到 Visual C++ 2005 里
为了在 Visual Studio 2005 里使用 Qt, 我们需要安装 Qt Visual Studio Add-in 这个插件。
安装好插件后,从 Visual Studio 里的菜单 Qt -> Qt Options -> Add 里,把我们之前的 Qt 安装目录添加进去,如图所示:
![]() |
| Add Qt Build |
更多情况可以参见有关这个插件的官方文档。
PS:旧版本的 Qt 是通过这样的方式来添加的:Tools -> Options -> Qt -> Builds
现在我们来编写一个 Hello World 的程序来测试一下 Qt 能否在 Visual Studio 2005 里编译。
1) 启动一个新的工程,选择 Qt4 Projects -> Qt Application 类型,输入工程名字 QTVSTest,单击OK。
![]() |
| QTVSTest Step1 |
然后一步一步 Next,用默认值就OK了。
![]() |
| QTVSTest Step2 |
![]() |
| QTVSTest Step3 |
![]() |
| QTVSTest Step4 |
如果你运行完上面的步骤,Visual Studio 2005 提示你类似于 "Unable to find a Qt build!" 的错误提示,如下图所示:
![]() |
| Unable to find a Qt build |
这个时候,肯定是没有把 4.2 里的步骤做对,应该要把 Qt 的 build 添加到 Visual Studio 里去。
2) 现在我们把 Hello World 的代码放到 main.cpp 里,代码如下:
#include "qtvstest.h" #include <QtGui/QApplication> #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.show(); return app.exec(); }
现在就可以编译一把并运行了,一切顺序的话,你就能看到 Hello World 的程序界面了。