Qt 打包32位库(包括WebEngineView)

2018-10-24  本文已影响198人  觉醒的苍红之刃

前言

经过一段时间的折磨,终于编译出了32位库,经历了各种报错,以下为相关总结。


环境

1.VS 2017安装;
2.ActivePerl安装;
3.Python 2.7安装(不能用Python 3及以上版本,官方暂不支持);
4.Ruby安装;
5.icu 解压即用,比如解压到C:\icu4c,并添加环境变量;
6.openssl (不要以为版本号看起来更高就下载那个openssl-1.0.2h.tar.gz,该版本不兼容!)
编译openssl流程如下:
①解压下载的openssl源码,比如解压到C:\openssl-1.0.1t ;
②打开“VS2017 开发人员命令提示“;
③执行命令

cd C:\openssl-1.0.1t 

④执行命令

perl Configure VC-WIN32 no-asm –prefix=C:\openssl-1.0.1t\win32dll

⑤执行命令

ms\do_ms

⑥执行命令

nmake -f ms\ntdll.mak

⑦执行命令

nmake -f ms\ntdll.mak install

7.windows 10 SDK


编译

1.下载Qt最新源码 qt-everywhere-src-5.11.2.zip
2.解压;
3.打开qt-everywhere-src-5.11.2\qtwebengine\src\3rdparty\chromium\third_party\skia\src\core\SkEdge.cpp,找到第238行的fCurveCount = SkToS8(1 << shift); 修改为fCurveCount = SkToS8(1i64 << shift)(已经不太确定这步是否需要);
4.打开 VS 2017的 x64_x86交叉工具命令提示符

image.png

5.执行命令

cd /d + 你的Qt源码路径

6.执行命令

configure -debug-and-release -opengl desktop -make libs -nomake tests -nomake examples -mp

其中会出现两个选择,分别输入o回车确认(估计没有人是用花钱的,如果是,那么选择另外一项),
y回车确认。
7.执行命令
因为我要确认qtwebengine是否能编译成功,故执行以下的命令,如果不需要确认则去掉后边的module-qtwebengine执行nmake即可

nmake module-qtwebengine

如果使用jom,则nmake替换成jom,jom是Qt官方工具,据说比nmake编译速度快
jom安装教程
如果是jom,那么执行

jom module-qtwebengine

8.等几个小时编译好,编译速度取决于电脑性能,最后执行命令

nmake install

9.完成后你会发现所有的东西都放在C盘Qt目录下了

image.png

报错记录

1.模块计算机类型“x86”与目标计算机类型“x64”冲突


QQ图片20181015230600.png
QQ图片20181016203415.png

以上两个问题的解决方案
选择VS 2017的 x64_x86交叉工具命令提示符,这就是上边编译第四步选择该命令提示符的原因。
3.无法打开atl.lid
①在程序中找到VS 2017,右键->更改

image.png
②选择ATL相关选项,执行修改

VS 2017组件附图

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

环境变量附图

image.png

后记

很多错误都是因为缺少东西引起的,根据报错检查VS相关组件,或者检查相应的编译环境。

上一篇 下一篇

猜你喜欢

热点阅读