如何为Visual Studio 2010构建Qt


137

我很难找到一种方法,该方法为在V​​isual Studio 2010中使用Qt提供了一个稳定的解决方案,因此在收集了所有信息并进行了一些反复试验之后,我想将解决方案写进指南中。

问题,或者为什么无法使用预构建的二进制文件?

在某些特殊情况下,似乎可以使用为Visual Studio 2008构建的二进制文件,但是我发现它们不起作用。在我的情况下,它们编译正常,但是会产生运行时错误,如下所示:

问题2

或从Visual Studio 2010启动时:

问题

更新:我发现了一篇博客文章,分析了为什么它对某些人有用,而对其他人却无效。一句话,这取决于您是否在同一台计算机上安装了Visual Studio 2008。 http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/

最重要的事情(我愚蠢地没有意识到)是,如果您没有安装Visual Studio 2008,则无法使用Visual Studio 2008编译的库和dll(可从Qt网页上获得)。原因是因为您下载的Qt SDK是一个调试版本,它依赖于VC9.0 DebugCRT,这意味着它需要安装Visual C ++ 2008 Debug Runtime,该版本无法作为可再发行的安装程序使用。安装DebugCRT的唯一方法是安装整个Visual Studio 2008。


谢谢你的努力。另外,解释为什么不应该使用VS 2008二进制文件可能会有所帮助。我确实与他们和VS2010一起开发了一些原型测试项目,而没有遇到任何问题,但是我确实记得有人提到存在部署问题吗?
拉尔夫

我在上一节中添加了我的经验。通常,我在网上发现了许多报告,告诉您,如果要在VS2010中使用Qt,则必须对其进行编译。有一页告诉您可能是VS2008的存在。
hyperknot 2011年

太棒了,我敢肯定很多人会发现这个有用:)
Ralf

嘿,这就是我所做的nmake。在尝试构建之前,我使用了以下内容:configure.exe -release -no-ltcg
Mateen Ulhaq 2011年

2
为了将来参考,您可能想知道Qt文档站点实际上具有从源代码进行编译安装说明
Ephphatha 2011年

Answers:


142

首先,非常重要的一点是要了解,将Qt与Visual Studio 2010一起使用时,不可能使用为Visual Studio 2008创建的预构建二进制文件,但必须从源代码进行编译。

正在下载Qt

https://www.qt.io/download/

2017年更新:最新的Qt 4.x分支(Qt 4.8.6)具有2个预构建的程序包,现在位于存档部分中:

  1. http://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2010-4.8.6.exe
  2. http://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2008-4.8.6.exe

您不应通过单击“用于Windows的Qt库4.8.6(Visual Studio 2008,218 MB)”来下载Qt ,而是单击其上方的“ zip”链接。

链接选择

在该链接上,您将获得一个大型zip文件,例如“ qt-everywhere-opensource-src-4.8.6.zip”。将此文件解压缩到一个文件夹中,并使其路径更小巧,例如“ E:\ Qt”

Visual Studio命令提示符

现在我们有了源代码,我们需要构建二进制文件。为此,请Microsoft Visual Studio 2010\Visual Studio Tools\Visual Studio Command Prompt (2010)从开始菜单中打开链接,甚至将其固定在任务栏上(一个好主意)。这是一个特殊的命令提示符,其中设置了用于使用Visual Studio 2010工具进行构建的所有变量。

进入命令提示符后,使用老式的DOS方式导航到提取的Qt文件夹,这意味着您必须更改驱动器号E:,输入目录,cd Qt并按列出目录内容dir。您可以使用Tab键来帮助您查找目录名称。到达正确的目录后,dir命令应返回如下内容。

命令行

建筑Qt

现在该进行配置和构建了。为了配置最低限度的Qt,我在中使用了以下标志configure.exe。只需将其复制并粘贴到命令行即可。在Qt参考手册中查找要使用或不使用的标志。

configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg

一旦configure.exe完成(对我来说是10分钟),您将需要开始构建过程。带有上述标志,大约需要20-30分钟。要启动它,只需键入:

nmake

设置环境变量

基本上,我们完成了。您需要做的就是设置环境变量(QTDIRPATH),该变量告诉程序在哪里可以找到Qt。如果您使用的是Windows 7,则可以使用以下命令将其设置QTDIR为安装目录。

setx QTDIR e:\Qt

对于设置PATH,我强烈建议使用路径编辑器。在路径编辑器中

add the directory of Qt\bin to your PATH

(无论是在系统路径还是用户路径中)

如果您喜欢使用Control Panel\System\Environment Variables,那么也可以在此处进行设置。

Qt Visual Studio加载项

在注销或重新启动后,所有Qt演示应用程序都应正确启动(在这里,我建议您看看bin \ qtdemo.exe)。现在,您可以从Qt下载页面下载并安装Visual Studio加载项(qt-vs-addin-1.1.9.exe),它将完美运行。

加入

附录A:官方说明:

在Qt网站的官方Wiki上有一个名为Qt 4.8 Installation Qt for Windows的页面,但是我发现它缺少重要的信息。

参考资料

Qt
极简主义Qt构建的推荐标志
使用Visual C ++ 2010构建Qt 4.5
如何将Qt编译为静态
Qt 4.8:为Qt配置选项

Windows中轻松编辑PATH环境变量-op111.net


2
很棒,但是如果您不想让定制Qt Assistant出现问题,我会在配置标志中添加-qt-sql-sqlite。似乎需要此插件才能成功读取文档数据库。
neuviemeporte 2011年

很棒的向导!一个注意事项-我正试图设置一两天,并且在此过程中向mingw添加了一些路径变量-这些中断了nmake,需要先删除,然后再进行操作。
大卫·霍尔

2
还有一点要注意:如果QT源所在的文件夹的路径中有一些空格,则VS工具会拒绝构建QT。至少对我而言。
罗曼·克鲁格洛夫

10
只是一个问题:为什么Qt不提供VS 2010的预编译发行版?
Matt Montag

2
只是为了通知你们。原始帖子中的链接不再起作用。搜索digia网站并发现Addin甚至不存在,需要花费相当长的时间。必须遵循的主要链接是:qt-project.org/downloads
paul23

25

Qt V4.8.0包含针对Visual Studio 2010的预构建二进制文件,因此您不再需要这样做:http : //qt.nokia.com/downloads/windows-cpp-vs2010


2
parsley72仅当您计划在32位调试模式下工作时,Visual Studio 2010的预编译二进制文件才有用,否则zsero发布的指南非常有用,尤其是当您希望更改有关架构的选项时。

绝对!但是在提供预建库之前,有人问过这个问题,所以我要让人们知道现在有了替代方法。
parsley72

1

始终欢迎潜在解决方案的链接,但是请在该链接周围添加上下文,以便您的其他用户会知道它的含义和存在的原因。如果目标站点无法访问或永久脱机,请始终引用重要链接中最相关的部分。考虑到仅仅删除一个外部站点的链接可能是为什么以及如何删除一些答案的可能原因。
Maximilian Ast
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.