使用 Visual Studio 2012 的编译器为 Windows XP 制作 Qt 应用程序
Posted
技术标签:
【中文标题】使用 Visual Studio 2012 的编译器为 Windows XP 制作 Qt 应用程序【英文标题】:Using Visual Studio 2012's compiler to make Qt applications for Windows XP 【发布时间】:2013-11-28 12:34:04 【问题描述】:我知道从 VS2012 开始,微软已经停止了对 Windows XP 的支持。 VS2012 有一个更新,因此开发人员可以制作受 Windows XP 支持的应用程序。现在我开始学习 Qt 库。我使用 Qt Creator,我使用的编译器来自 VS2012。有没有办法在 Qt Creator 中选择选项,以便它可以为 XP 生成有效的 32 位 exe?还是最好安装在我的 PC VS2010 上并使用它的编译器?顺便说一句,我正在 Windows 7 上制作应用程序,一切正常。
【问题讨论】:
【参考方案1】:我们目前正在使用 VS2012 并利用您提到的更新将我们的 VC++ 二进制文件定位到 Windows XP。它工作正常。在 Visual Studio 中,我们通过转到项目属性、Configuration Properties->General->Platform Toolset 并选择“Visual Studio 2012 - Windows XP (v110_xp)”来完成此操作。
检查编译器命令行选项(配置属性->C/C++->命令行),似乎告诉编译器以XP为目标的开关如下:
/D "_USING_V110_SDK71_"
并在链接命令行选项中:
/SUBSYSTEM:WINDOWS,5.01
/SUBSYSTEM:WINDOWS,5.02
第一个用于 x86,第二个用于 x64(仅使用一个)。如果是控制台应用程序,请改用这些:
/SUBSYSTEM:CONSOLE,5.01
/SUBSYSTEM:CONSOLE,5.02
我更改了平台工具集,但这些工具集都消失了,所以我想它们正是您所需要的。在 QtCreator 中,您应该相应地编辑编译器和链接器命令行选项。
编辑:如果这不起作用,请尝试this article 上“从命令行定位”部分中的说明。
【讨论】:
感谢您的回复。我会试试的。但是我不熟悉通过命令行设置选项,如果我不能这样做,在我的 PC 上安装 VS 2010 并使用它的编译器是否有问题?有什么东西可以在 VS2012 上运行,但在 VS2010 上不行吗? 如果你走 VS2010 的路,与 VS2012 相比,你会失去一些 C++11 的特性。 This SO question 讨论细节。如果您不使用其中任何一个,并且确定将来不再需要它们,那么当然,去吧。我的盒子里有 VS2012、VS2010 和 VS2008,如果你担心的话,它们不会互相混淆。 除了 C++11 特性,其他 C++ 特性在讨论here 感谢您的帮助。我将安装 VS2010 并使用它的编译器。我还在学习,所以我不必制作需要 C++11 功能的大型项目。这只是我的爱好 :) 再次感谢您的帮助 :) @user3038079:您可能并不需要它们,但它们非常有用。如果你还在学习,也许更多:你不妨学习现代技术,而不是过时的方法。例如。for (auto object : MyObjects)
(这也适用于 Qt 容器)以上是关于使用 Visual Studio 2012 的编译器为 Windows XP 制作 Qt 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用 Visual Studio 2012 的编译器为 Windows XP 制作 Qt 应用程序
如何使用 Direct8 dll 编译/调试 Visual Studio 2012 Win32 项目
在 Visual Studio 2010 和 Visual Studio 2012 中,带有 col、colgroup、tbody 和 thead 的 HTML 表格标记引发编译错误