首页 Qt 使用 VS2012 编译 Qt 4.8.4

使用 VS2012 编译 Qt 4.8.4

5 2.1K

安装过 VS2012 之后发现官方并没有提供针对 VS2012 的预编译 Qt 4,所以我们必须要自己使用 VS2012 编译 Qt 4。Qt 4 的最新版是 4.8.4,这也是我们推荐的版本。按照官方的说法,这一版本已经能够使用 VS2012 进行编译。此处记下编译步骤:

首先准备必须的工具:

准备好上述工具之后,我们就可以进行编译工作了:

安装前面我们下载完成的 Perl。

将 Qt 源代码解压,比如这里我们将其解压到 C:\Qt。

Qt 4.8.4 的 webkit 代码有一些问题,这里我们必须首先对其进行修改:

将 C:\Qt\src\3rdparty\webkit\Source\JavaScriptCore\wtf\HashSet.h 文件使用这里提供的 HashSet.h 进行替换;

将 C:\Qt\src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizationStrategy.cpp 文件的第 327 行修改为:

return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));

我们修改的主要内容是将 Look Up 一句后面的双引号替换为转义字符。

将 JOM 解压到 C:\Qt\JOM。

在系统环境变量中添加两个新的变量:

  • QTDIR=C:\Qt\
  • QMAKESPEC=win32-msvc2012

在系统环境变量 Path 的最后增加一个 ;,然后加上 %QTDIR%\bin。

打开 VS2012 的本地工具命令行,进入 C:\Qt 目录。

输入下面命令并回车:

configure -opensource -platform win32-msvc2012

然后输入:

jom\jom.exe -j n

注意,这里的 n 表示你的 CPU 的核数。例如,豆子的笔记本 CPU 是 i5 双核四线程,因此输入的是

jom\jom.exe -j 4

接下来便是漫长的等待,这个过程大约会持续 5 - 6 个小时,建议晚上睡觉前开始编译,第二天一早就可以得到结果了。

最后,如果编译没有错误,我们执行

nmake install

完成安装。

至此,我们就使用 VS2012 编译完成 Qt 4.8.4。

5 评论

san 2013年6月18日 - 08:34

诺记那边好像无法下载jom了,博主更新一下链接吧,我用的是http://releases.qt-project.org/jom/jom.zip

回复
豆子 2013年6月18日 - 08:48

已经修改过了哦~多谢提醒!

回复
san 2013年6月18日 - 16:51

抱歉博主,占用地方写个编译中我遇到的问题和解决方法

fatal error LNK1210: 已超过内部ILK大小限制;链接时使用 /INCREMENTAL:NO

(fatal error LNK1210: exceeded internal ILK size limit; link with
/INCREMENTAL:NO)

mkspecs\win32-msvc2012\qmake.conf第61行
原本为: QMAKE_LFLAGS_DEBUG = /DEBUG
改为: QMAKE_LFLAGS_DEBUG = /DEBUG /INCREMENTAL:NO

参考: https://bugs.webkit.org/show_bug.cgi?id=41930
http://trac.webkit.org/changeset/74409

回复
豆子 2013年6月19日 - 16:15

多谢指出!我倒是很幸运地没有遇到任何错误

回复
kylinsage 2015年8月7日 - 16:51

编译演示程序browser 时,运行会崩溃。可能qtwebkit存在问题

回复

回复 san 取消回复

关于我

devbean

devbean

豆子,生于山东,定居南京。毕业于山东大学软件工程专业。软件工程师,主要关注于 Qt、Angular 等界面技术。

主题 Salodad 由 PenciDesign 提供 | 静态文件存储由又拍云存储提供 | 苏ICP备13027999号-2