我应该采取哪些步骤来编译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源进行一些修改。
答案 0 :(得分:72)
使用Visual Studio 2012 x64的Qt 4.8.3(也应该适用于4.8.2)
转到mkspecs\win32-msvc2010
。打开qmake.conf
并更改:
QMAKE_COMPILER_DEFINES += _MSC_VER=1600 WIN32
为:
QMAKE_COMPILER_DEFINES += _MSC_VER=1700 WIN32
将qt-everywhere-opensource-src-4.8.3-x64\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h
替换为this HashSet.h
。
启动“VS2012 x64 Native Tools命令提示符”
切换到Qt 4.8.3源目录(包含configure.exe
的目录)
执行命令
configure -mp -opensource -nomake demos -nomake examples -platform win32-msvc2010
其次是:
nmake
我编写了一个名为BlueGo的工具,它自动下载Qt 4.8.3并使用VS2012 x64构建它:http://bluego.vertexwahn.de(也适用于VS2010 x64)(它只是按照我上面的描述自动完成)
答案 1 :(得分:22)
Qt 4.8.4比上面的Vertexwahn所描述的需要更少的调整。
所以简单地替换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的版本)