【问题标题】:Using Visual Studio 2012's compiler to make Qt applications for Windows XP使用 Visual Studio 2012 的编译器为 Windows XP 制作 Qt 应用程序
【发布时间】: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 上制作应用程序,一切正常。

【问题讨论】:

    标签: c++ visual-studio


    【解决方案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 容器)
    猜你喜欢
    • 2012-10-19
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多