为Visual Studio 2012编译Qt 4.8.x.

Smi*_*Smi 43 c++ qt visual-studio-2012

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

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

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

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

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

Ver*_*ahn 72

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

  1. 安装Strawberry Perl

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

  3. 去吧mkspecs\win32-msvc2010.打开qmake.conf并更改:

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1600 WIN32
    
    Run Code Online (Sandbox Code Playgroud)

    至:

    QMAKE_COMPILER_DEFINES  += _MSC_VER=1700 WIN32
    
    Run Code Online (Sandbox Code Playgroud)
  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
    
    Run Code Online (Sandbox Code Playgroud)
  8. 其次是:

    nmake
    
    Run Code Online (Sandbox Code Playgroud)

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

  • 它对我有用,即使我的系统上没有安装Perl软件包.只需要修补文件. (2认同)

cbi*_*low 22

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

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

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

  • `Win32`用作OS API平台:Win32 API适用于所有Windows桌面(x86,x64和以前的64位Itanium).64位不需要不同的顶级配置,因此为了保持兼容性,他们保留了名称. (9认同)

Flo*_*rge 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的版本)