VS2010编译Qt4.8.6_x64

Qt4.8.6在官网上只可以下载到32位的,如果实际中需要64位的需要把源码手动编译成64位的。

1. 把下载到的源码qt-everywhere-opensource-src-4.8.6.zip,解压到:C:\Qt\4.8.6_x64下面

在这里插入图片描述

2. 找到VS2010下面的64位的命令行提示工具

在这里插入图片描述
输入两行命令:

set QTDIR=C:\Qt\4.8.6_x64
set QMAKESPEC=win32-msvc2010

在这里插入图片描述

3. 修改Qt4.8.6源码中的一些问题

第一处修改:
打开文件C:\Qt\4.8.6_x64\src\3rdparty\webkit\Source\WebCore\platform\DefaultLocalizationStrategy.cpp
中的327行
在这里插入图片描述
由原来的:
在这里插入图片描述
改为:
在这里插入图片描述

第二处修改:

C:\Qt\4.8.6_x64\mkspecs\win32-msvc2010\qmake.conf

在这里插入图片描述
第60和61行:
原来的:
在这里插入图片描述

QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF
QMAKE_LFLAGS_DEBUG = /DEBUG

修改为:
在这里插入图片描述

QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF /INCREMENTAL:NO 
QMAKE_LFLAGS_DEBUG      = /DEBUG /INCREMENTAL:NO

4. 进入之前的VS2010 x64的命令行工具生成VS2010工程

输入命令:

configure -opensource -nomake demos -nomake examples -platform win32-msvc2010 -webkit

提示:Do you accept the terms of the license? 输入

y

在这里插入图片描述
开始生成VS2010项目工程,大概需要20分钟。。。
在这里插入图片描述
生成完成。

5. 编译Qt4.8.6

在C:\Qt\4.8.6_x64下面使用VS2010打开生成的projects.sln
在这里插入图片描述

6. 错误调试

经过漫长的编译过程,出现了两个链接错误和一些定义错误;

6.1.链接错误:
错误	9684	error LNK2019: 无法解析的外部符号 _HBeginPaint,该符号在函数 "private: static struct HDC__ * __cdecl WebCore::PluginView::hookedBeginPaint(struct HWND__ *,struct tagPAINTSTRUCT *)" (?hookedBeginPaint@PluginView@WebCore@@CAPEAUHDC__@@PEAUHWND__@@PEAUtagPAINTSTRUCT@@@Z) 中被引用	C:\Qt\4.8.6_x64\src\3rdparty\webkit\Source\WebKit\qt\webcore.lib(PluginViewWin.obj)
错误	9685	error LNK2019: 无法解析的外部符号 _HEndPaint,该符号在函数 "private: static int __cdecl WebCore::PluginView::hookedEndPaint(struct HWND__ *,struct tagPAINTSTRUCT const *)" (?hookedEndPaint@PluginView@WebCore@@CAHPEAUHWND__@@PEBUtagPAINTSTRUCT@@@Z) 中被引用	C:\Qt\4.8.6_x64\src\3rdparty\webkit\Source\WebKit\qt\webcore.lib(PluginViewWin.obj)

在这里插入图片描述
链接错误位置:
在文件C:\Qt\4.8.6_x64\src\3rdparty\webkit\Source\WebCore\plugins\win\PluginViewWin.cpp 的180行和209行的位置
在这里插入图片描述
没有找到对应得链接符号。
在相同的目录C:\Qt\4.8.6_x64\src\3rdparty\webkit\Source\WebCore\plugins\win下面找到文件:PaintHooks.asm。通过文本工具打开后可以看到相应的定义:
在这里插入图片描述
修改方案:
a. 把这个文件PaintHooks.asm添加到项目webcore中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在项目中可以看到这个文件已经添加到项目中了。
b. 修改配置属性,鼠标右键->生成自定义
在这里插入图片描述
勾选masm(.targets,.props)选项,点击【确定】
在这里插入图片描述
c. 修改PaintHooks.asm属性
在这里插入图片描述
在常规->项类型->Mcrosoft Macro Assembler
在这里插入图片描述
这样修改就可以解决链接问题了。

6.2. 没有找到TESTS_SOURCE_DIR定义问题

在这里插入图片描述
然后查看其定义的位置实在文件:
C:\Qt\4.8.6_x64\src\3rdparty\webkit\Source\WebKit\qt\tests\util.h中。

在文件中添加一行代码,重新定义即可

#define TESTS_SOURCE_DIR "C:/Qt/4.8.6_x64/src/3rdparty/webkit/Source/WebKit/qt/tests/"

在这里插入图片描述
这样就可以找到定义了。

aaa

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值