为Visual Studio 2012编译Qt 4.8.x

我应该采取什么步骤编译Visual Studio 2012的Qt(版本4.8.x)?

我已经仔细地按照这个问题的接受的答案(这是VS 2010)的指示,但WebKit模块未能编译(我不知道如果错误消息logging在编译过程中的任何地方)。

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

我意识到至less有一个问题是Qt\mkspecs没有win32-msvc2012目录。 我应该只是创build该目录并从win32-msvc2010复制文件,可能有一些修改?

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

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. 用这个HashSet.hreplaceqt-everywhere-opensource-src-4.8.3-x64\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h HashSet.h

  5. 启动“VS2012 x64本地工具命令提示符”

  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构build它: http ://bluego.vertexwahn.de(也适用于VS2010 x64)(它只是自动完成上面描述的)

Qt 4.8.4需要比上面Vertexwahn所描述的更less的调整。

  • 在从档案中提取Qt之后,HashSet仍然必须修复(参见Vertexwahn的修复 )。
  • 尽pipe平台win32-msvc2012是支持的(也适用于64位环境中的64位,不要问为什么他们把它命名为Win32)。

所以简单地replaceHashSet.h并编译。

只要创build一个win32-msvc2012目录下面的更改没有为我工作,需要更多的编辑。 在你已经链接的线程中描述了什么是必要的。

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

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

QMAKE_COMPILER_DEFINES + = _MSC_VER = 1600 WIN32

QMAKE_COMPILER_DEFINES + = _MSC_VER = 1700 WIN32

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

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