如何将Visual Studio 2012 RC编译器设置为Qt的编译器而非MinGW?

8

操作系统:Windows 8 x86; 软件框架:Qt 4.8.2; 集成开发环境:Visual Studio Ultimate 2012 RC。


什么?Visual Studio一开始就不使用mingw。 - Ben Voigt
你使用Qt Creator吗?还是纯qmake?或者其他什么工具? - Mat
这个链接可能会有帮助:http://www.qtcentre.org/wiki/index.php?title=Qt4_with_Visual_Studio。 - phyatt
我在想这个问题是否已经被事件所淘汰了?从git拉取最新的QT 4.8.x并在VS 2012 x86本地工具命令提示符调用时,看起来它似乎可以很好地处理configure -platform win32-msvc2012版本:"Microsoft Visual Studio Professional 2012版本11.0.51020.03更新1 CTP" - JonnyRo
1个回答

12
据我所知,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命令提示符窗口中,转到tools/configure,运行先前版本的qmake(您需要已经拥有),然后运行nmake以更新configure.exe。
  • 在所有文件中搜索“make_pair<”,并删除模板参数。
    • 这可能在VS 2012中不是必需的;在VS 2011-beta中,当指定模板参数时,make_pair会出现编译错误。
  • 在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程序,例如:configure.exe -debug-and-release -platform win32-msvc2012 -opensource
    • [可选]将“-nomake demos -nomake examples”添加到命令行以节省构建时间,并/或使用“-mp”进行并行构建
  • 配置完成后,输入nmake开始构建。这将构建所有库的调试和发布版本以及所有工具(设计师等)的发布版本。

这对我来说需要做一些工作,但是它对我有用,现在我有数十个Qt应用程序正在运行,因此我想与任何想要在Visual Studio 11 (Visual Studio 2011 beta或Visual Studio 2012 RC)上构建Qt 4.8.x的人分享。

如果这看起来过于复杂,请稍等一下; 我相信Qt很快就会支持Visual Studio 2012。


1
如果您在“pair”方面遇到了构建问题,请访问以下链接:http://qt-project.org/forums/viewthread/17771 - echo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接