【问题标题】:How to set Visual Studio 2012 RC Compiler for Qt instead of MinGW?如何为 Qt 而不是 MinGW 设置 Visual Studio 2012 RC 编译器?
【发布时间】:2012-06-02 15:13:28
【问题描述】:

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

【问题讨论】:

  • 嗯? Visual Studio 开始时不使用 mingw。
  • 你在使用 Qt Creator 吗?普通的qmake?还有什么?
  • 我想知道这个问题是否已经过时了?从 git 中提取最新的 QT 4.8.x,当从 VS 2012 x86 本机工具命令提示符调用时,它似乎可以很好地处理 configure -platform win32-msvc2012。版本:“Microsoft Visual Studio Professional 2012 版本 11.0.51020.03 更新 1 CTP”

标签: c++ qt visual-studio-2012 compiler-construction mingw


【解决方案1】:

据我所知,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 到 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.exe -debug-and-release -platform win32-msvc2012 -opensource
    • [可选] 将“-nomake demos -nomake examples”添加到命令行以节省构建时间,和/或添加“-mp”以并行构建
  • 配置完成后,键入nmake 开始构建。这将构建所有库的调试和发布版本以及所有工具(设计器等)的发布版本。
  • 这花了一些功夫,但它对我有用,我现在有几十个 Qt 应用程序启动并运行,所以我想我会与其他想要在 Visual Studio 11 上构建 Qt 4.8.x 的人分享(Visual Studio 2011 测试版或 Visual Studio 2012 RC。)

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    相关资源
    最近更新 更多