为Visual Studio 2012编译Qt 4.8.x.

时间:2012-08-24 16:37:39

标签: c++ qt visual-studio-2012

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

我已经仔细按照this question(适用于VS 2010)的接受答案中的说明,但WebKit模块无法编译(我不确定在编译期间是否记录了错误消息)。

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

我发现至少有一个问题是win32-msvc2012中没有Qt\mkspecs目录。我应该只创建该目录并从win32-msvc2010复制文件,可能需要进行一些修改吗?

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

3 个答案:

答案 0 :(得分:72)

使用Visual Studio 2012 x64的Qt 4.8.3(也应该适用于4.8.2)

  1. 安装Strawberry Perl

  2. http://qt-project.org/downloads

  3. 下载Qt 4.8.3源代码
  4. 转到mkspecs\win32-msvc2010。打开qmake.conf并更改:

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1600 WIN32
    

    为:

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1700 WIN32
    
  5. qt-everywhere-opensource-src-4.8.3-x64\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h替换为this HashSet.h

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

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

  8. 执行命令

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

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

答案 1 :(得分:22)

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

  • 在从档案中提取Qt后,仍然需要修复HashSet(请参阅fix of Vertexwahn)。
  • 平台win32-msvc2012虽然支持开箱即用(在64位环境下也适用于64位,但不要问为什么将它命名为Win32)。

所以简单地替换HashSet.h并编译。

答案 2 :(得分: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的版本)