网上对于Visual Studio 2013版本编译64位的QT4版本的资料相对较少,因此本人在编译的过程也走了一些弯路,现趁着空闲时间来详细的讲讲编译的步骤。
首先,下载Visual Studio 2013版本并进行安装,推荐微信公众号关注:软件安装管家。这里面有许多软件的各个版本的破解版下载链接和教程,免费的!!!
接下来,下载QT4,这个可以直接搜索官网进行下载,百度搜索QT4下载就能找到。具体哪个版本可随意,只要是QT4的就行,本文就用QT4.8.6版本进行演示。
下载链接:http://download.qt.io/archive/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.zip
注意:下载的要是源代码,不要下载成已经编译好的软件。
然后,还需要下载一个插件:QT VS Tools,这个插件的作用是把QT嵌入到Visual Studio中,VS2013对应的插件版本是qt-vs-tools-msvc2013-2.1.1。下载完后先别急着安装。
下载链接:https://download.csdn.net/download/u014615957/9991460
以下就是重点了!!!我们开始对QT源代码进行编译
总体分为三个步骤。
第一步:为了让QT4适配VS2013,需要改动几个地方
第一个地方:
打开:D:\qt-everywhere-opensource-src-4.8.6\mkspecs\win32-msvc2013。找到文件qmake.conf,用
Notepad++软件打开。没有的自己下载(链接:https://notepad-plus.en.softonic.com/)
找到:
1 | QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF |
替换成:
1 | QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF /INCREMENTAL:NO |
第二个地方:
打开:D:\qt-everywhere-opensource-src-4.8.6\src\3rdparty\webkit\Source\JavaScriptCore\wtf。找到文件HashSet.h,用Notepad++软件打开。
定位到代码块:
1 | template<typename T, typename U, typename V> |
将代码:
1 | return m_impl.add(value); |
替换成:
1 | typedef typename HashSet<T, U, V>::iterator iter_type; |
第三个地方:
同样是这个文件。
定位到代码块:
1 | HashSet<Value, HashFunctions, Traits>::add(const T& value) |
将代码:
1 | return m_impl.template addPassingHashCode<T, T, Adapter>(value, value); |
替换成:
1 | typedef typename HashSet<Value, HashFunctions, Traits>::iterator iter_type; |
第四个地方:
打开:D:\qt-everywhere-opensource-src-4.8.6\src\3rdparty\webkit\Source\JavaScriptCore\wtf。找到文件MathExtras.h,用Notepad++软件打开。
定位到代码块:
1 | #endif |
将代码:
1 | #if COMPILER(MSVC) || (COMPILER(RVCT) && !(RVCT_VERSION_AT_LEAST(3, 0, 0, 0))) |
替换成:
1 | #if (COMPILER(MSVC) && _MSC_VER < 1800) || (COMPILER(RVCT) && !(RVCT_VERSION_AT_LEAST(3, 0, 0, 0))) |
第五个地方:
同样是这个文件。
1 | #endif |
将代码:
1 | #if COMPILER(MSVC) |
替换成:
1 | #if COMPILER(MSVC) && _MSC_VER < 1800 |
第六个地方:
打开:D:\qt-everywhere-opensource-src-4.8.6\src\3rdparty\webkit\Source\WebCore\platform。找到文件DefaultLocalizationStrategy.cpp,用Notepad++软件打开。
定位到第327行代码块:
1 | return WEB_UI_STRING("LookUp “<selection>”","Look Up context menu item with selectedword").replace("<selection>",truncatedStringForLookupMenuItem(selectedString)); |
替换成:
1 | return WEB_UI_STRING("LookUp \"<selection>\"", "Look Up context menu item withselected word").replace("<selection>",truncatedStringForLookupMenuItem(selectedString)); |
第二步:用VS编译64位的QT4源代码。
在开始菜单点击该文件:
点击: VS2013 x64 本机工具命令提示
输入:configure -opensource -nomake demos -nomake examples -platform win32-msvc2013
等待执行完成后,根据提示输入:nmake
之后去做其他事情吧,这个需要大概三四个小时左右
第三步:安装插件qt-vs-tools-msvc2013-2.1.1
直接安装(前提是VS2013已经安装完了并且QT也编译完了),安装过程很简单,无脑下一步就行。
1.安装完成后打开VS2013,可以看到菜单栏上有该插件。
2.点击Qt Options
3.将QT代码加入
最后,我们用代码来测试一下是否ok。
某位大佬的QT学习代码链接:https://share.weiyun.com/8bcbb391c9c31f7dd52678583e8e9e08
下载完,解压文件后,随便打开一个工程
点击确定,不用理会
此时,如果直接生成或编译则会报错,如下图所示:
正常操作是先点击该工程下任意.c文件
然后点击Convert Project to Qt VS Tools Project进行工程转换
最后Ctal+F5运行程序