43

我应该采取哪些步骤来为 Visual Studio 2012 编译 Qt(版本 4.8.x)?

我已经仔细遵循了这个问题的已接受答案中的说明(适用于 VS 2010),但是 WebKit 模块无法编译(我不确定在编译过程中是否记录了错误消息)。

我也看到了这个问题,它提出了同样的问题,但是对于 VS 2012 RC(这就是为什么我认为这不会是一个重复的问题)。此外,回答者说他已经为 VS 2011 Beta 编译了 Qt,因此它可能不适用于 VS 2012 (RTM)。编译需要很多时间,这就是为什么我还没有尝试过。

我意识到的至少一个问题win32-msvc2012Qt\mkspecs. 我是否应该只创建该目录并从中复制文件win32-msvc2010,可能需要进行一些修改?

另一个子问题是我是否应该在开始编译之前对 Qt 源代码进行一些修改。

4

3 回答 3

72

Qt 4.8.3 与 Visual Studio 2012 x64(也应与 4.8.2 一起使用)

  1. 安装草莓 Perl

  2. 从http://qt-project.org/downloads下载 Qt 4.8.3 源代码

  3. mkspecs\win32-msvc2010。打开qmake.conf和改变:

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1600 WIN32
    

    至:

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1700 WIN32
    
  4. qt-everywhere-opensource-src-4.8.3-x64\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h这个HashSet.h代替。

  5. 启动“VS2012 x64 Native Tools 命令提示符”

  6. 切换到 Qt 4.8.3 源目录(包含 的目录configure.exe

  7. 跑:

    configure -mp -opensource -nomake demos -nomake examples -platform win32-msvc2010
    
  8. 其次是:

    nmake
    

我编写了一个名为 BlueGo 的工具,它会自动下载 Qt 4.8.3 并使用 VS2012 x64 构建它:http://bluego.vertexwahn.de 也适用于 VS2010 x64)(它只是自动执行我上面描述的操作)

于 2012-10-26T11:10:55.020 回答
22

Qt 4.8.4 需要的调整比上面 Vertexwahn 描述的要少。

  • 在从存档中提取 Qt 之后,仍然必须修复 HashSet(参见Vertexwahn 的修复)。
  • 虽然开箱即用地支持平台 win32-msvc2012(在 64 位环境中也适用于 64 位,不要问他们为什么将其命名为 Win32)。

所以只需替换 HashSet.h 并编译。

于 2012-12-19T09:18:18.563 回答
6

仅使用以下更改创建一个 win32-msvc2012 目录对我不起作用,需要进行更多编辑。您已经链接的线程中描述了究竟是什么。

我做了什么,我去了win32-msvc2010。

在那里,打开 qmake.conf 并更改

QMAKE_COMPILER_DEFINES += _MSC_VER=1600 WIN32

QMAKE_COMPILER_DEFINES += _MSC_VER=1700 WIN32

然后我可以使用 win32-msvc2010 进行配置。

另外,我使用了这些更改:http ://qt-project.org/forums/viewthread/17771(alzi 的版本)

于 2012-08-30T17:52:23.570 回答