如何为 Qt 而不是 MinGW 设置 Visual Studio 2012 RC 编译器

How to set Visual Studio 2012 RC Compiler for Qt instead of MinGW?

本文关键字:Visual 设置 Studio 2012 编译器 RC MinGW Qt      更新时间:2023-10-16

Windows 8 x86;Qt 4.8.2;Visual Studio Ultimate 2012 RC

据我所知,Qt还不支持Visual Studio 2012 RC。然而,我设法用Visual Studio 2011 beta(Visual Studio 2012 RC的前身 - 他们只是决定重命名它)构建Qt 4.8。在编译之前,它需要对Qt源代码进行一些更改。以下是我使用的步骤:

    将 mkspecs/win32-msvc2010
  • 复制到 mkspecs/win32-msvc2012 并编辑 qmake.conf 文件以指定 _MSC_VER=1700。
  • 在提取目录下的所有文件中搜索"msvc2010"
  • ,并修补~10个位置以理解"msvc2012"
  • 在 Visual Studio 命令 shell 中,cd to tools/configure,运行以前版本的 qmake(你需要已经有),然后运行 nmake 来更新你的 configure.exe。
  • 在所有文件中搜索"make_pair<"并删除模板参数。
    • 这在VS 2012中可能不是必需的;在VS 2011-beta中,当指定模板参数时,我遇到了make_pair编译错误。
  • In src\3rdparty\javascriptcore\JavaScriptCore\runtime\Structure.{h,cpp} 将make_pair调用更改为显式 JSC::StructureTransitionTableHash::Key 构造函数调用。
  • 编辑 src\
  • 3rdparty\clucene\src\CLucene\config\define_std.h 以注释掉_CL_HAVE_HASH_MAP并_CL_HAVE_HASH_SET
  • 在 Visual Studio 命令外壳中,运行随源代码一起安装的配置程序,例如:configure.exe -debug-and-release -platform win32-msvc2012 -opensource
    • [可选]在命令行中添加"-nomake demos -nomake examples"以节省构建时间,和/或"-mp"以并行构建
  • 配置完成后,键入 nmake 以启动生成。这将构建所有库的调试和发布版本以及所有工具(设计器等)的发布版本。

这需要一点工作,但它对我有用,我现在有几十个Qt应用程序启动并运行,所以我想我会与其他想要在Visual Studio 11(Visual Studio 2011测试版或Visual Studio 2012 RC)上构建Qt 4.8.x的人分享。

如果这看起来太复杂,请稍等片刻;我相信Qt很快就会支持Visual Studio 2012。