【问题标题】:How to build Qt for Visual Studio 2010如何为 Visual Studio 2010 构建 Qt
【发布时间】:2023-03-22 02:21:01
【问题描述】:

我很难找到一个方法来为在 Visual Studio 2010 中使用 Qt 提供稳定的解决方案,因此在收集了所有信息和一些尝试和错误之后,我想将我的解决方案写成指南。

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

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

或从 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的存在。
  • 太棒了,我相信很多人会觉得这很有用:)
  • 嘿,here's what I get 当我做nmake 时。在尝试构建之前,我使用了以下内容:configure.exe -release -no-ltcg.
  • 为了将来参考,您可能有兴趣知道Qt documentation 站点实际上有installation instructions for compiling from source

标签: c++ visual-studio visual-studio-2010 qt build


【解决方案1】:

首先,了解在 Visual Studio 2010 中使用 Qt 时,不能使用为 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

您不应通过单击“Qt libraries 4.8.6 for Windows (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 reference manual 中查找要使用或不使用的标志。

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,我强烈建议使用Path Editor。在路径编辑器中

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 Installing Qt for Windows,但是我发现它缺少重要的信息。

参考文献

Qt DevNet forums
Recommended flags for a minimalistic Qt build
Building Qt 4.5 with Visual C++ 2010
How to compile Qt as static
Qt 4.8: Configure options for Qt
Edit the PATH environment variable in
Windows without pain - op111.net

【讨论】:

  • 这很好,但如果您不想在定制的 Qt 助手中遇到问题,我会将 -qt-sql-sqlite 添加到配置标志中。似乎需要这个插件才能成功读取文档数据库。
  • 很棒的指南!一个注释 - 我试图设置一两天,并且在此过程中向 mingw 添加了一些路径变量 - 这些破坏了 nmake,需要在工作之前将其删除。
  • 还有一点注意:如果 QT 源所在文件夹的路径中有空格,VS 工具会拒绝构建 QT。至少在我的情况下是这样。
  • 只有一个问题:为什么 Qt 还没有提供 VS 2010 预编译发行版?
  • 只是为了通知你们。原帖中的链接已经失效了。搜索 digia 网站并发现插件甚至不存在需要相当长的时间。必须遵循的主要链接是:qt-project.org/downloads
【解决方案2】:

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

【讨论】:

  • parsley72 Visual Studio 2010 的预构建二进制文件仅在您计划在 32 位调试模式下工作时才有用,否则 zsero 发布的指南非常有用,尤其是如果您希望更改有关架构的选项。
  • 绝对!但是这个问题在预建库可用之前就被问到了,所以我让人们知道现在有一个替代方案。
【解决方案3】:

【讨论】:

  • 始终欢迎提供潜在解决方案的链接,但请add context around the link,以便您的其他用户知道它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。考虑到仅仅是指向外部站点的链接是Why and how are some answers deleted 的一个可能原因。
猜你喜欢
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 2012-08-12
  • 1970-01-01
  • 1970-01-01
  • 2010-12-11
相关资源
最近更新 更多