mingw版本下qt与HTML,QT5.10开发(2) 在Windows 10下使用MinGW编译 静态Qt 5.10 release版 详细过程...

Qt建议安装动态链接Dbug版和编译安装静态链接release版

前提:

先安装动态链接Dbug版,方法:QT5.10开发(1)安装QT5.10

地址:http://blog..net/qq_15304853/article/details/79165301

然后编译静态链接release版,方法:

1 准备工作

1.1 编译环境

Windows 10 (Multiple Editions), Version 1703 (Updated July 2017) (x64)

1.2 建立文件夹结构

假设之前已安装Qt存放在D:pg-Qt目录下,该目录此时内容应如下:

548aa47ff182efda7388b31c7ca6295f.png

进入5.10.0目录,新建目录:mingw53_32_static 和 qt_build_mingw53_32_static,结果如下

294b0fd59b46991c110f4ba24ba440df.png

1.3 准备源码

如果之前安装时选择连源码一起安装,则此时源码已经在:D:\pg-Qt\5.10.0\Src目录下了,参见上图。

如果为选择连源码一起安装,则可从Qt官网下载:http://download.qt.io/official_releases/qt/5.10/5.10.0/single/   下载的qt源码包“qt-everywhere-src-5.10.0.tar.xz”,解压后,放在硬盘的根目录。例如:“F:\qt-everywhere-src-5.10.0 ”

注:如果qt源码目录的路径比较长会导致编译qtimageformats时出现 无法打开编译器生成的文件“”:Invalid argument的错误,所以放在根目录下,尽量减少路径长度。

2 安装编译所需的工具(直接在360软件宝库搜索安装)

1、python 2 ,官网“https://www.python.org/downloads/”  本次测试编译版本为python-2.7.13。

不安装在配置qt时会提示:WARNING: Python version 2 (2.7.5 or later) is required to build QtWebEngine.

2、Ruby ,官网“http://www.ruby-lang.org/en/downloads/”  本次测试编译版本为Ruby-1.9.2。

3   ActivePerl,官网“https://www.activestate.com/activeperl/downloads”本次测试编译版本ActivePerl-5.24.1.2402

如果不编译qtwebkit,就不用安装ActivePerl了。

注意:安装时必须选择“建立环境变量”选项。,也可以手动建立,我的如下:

0346899daa2328c5721d009d45cfea4c.png

3 配置Qt

3.1准备openssl

下载别人专门为Qt编译好的openssl,地址 http://www..com/findumars/p/6372223.html,下载后解压OpenSSL的zip压缩包(openssl-1.0.1c_static_w32_mingw.zip)后放置:D:pg-Qt目录下,此时路径为:D:pg-Qt\openssl-1.0.1c_static_w32_mingw

也可以自己编译,参考:

静态编译OpenSSL并整合到Qt

http://blog..net/lixiaoxin1989/article/details/78421573

Windows 下编译 OpenSSL

http://blog..net/liang19890820/article/details/51658574

openSSL1.1.1的编译

http://blog..net/lostspeed/article/details/69492531

3.2

打开终端,开始==》程序==》Qt5.10.0==》Qt 5.10.0 for Desktop (MinGW 5.3.0 32 bit)进入命令窗口

7d0e01896ef4b2f1ddd12a04b70f5ab7.png

3.3 检查命令执行情况

以管理员用户运行windows 命令行。

1)运行命令“gcc –v”  确保编译器能够正常运行;

2)运行命令“perl –v”确保perl能够正常运行;

3)运行命令“ruby  –v”确保ruby能够正常运行;

4)运行命令“python”确保python能够正常运行,按“Ctrl+Z”结束运行;

5)运行命令“sh”确保该命令不能执行,其会影响ming32-make的执行。

3.4使用shadow-build配置Qt

输入命令:

D :

cd D:\pg-Qt\Qt5.10.0\qt_build_mingw53_32_static

在该目录下运行下面命令:

F:\qt-everywhere-src-5.10.0\configure.bat  -static -release -confirm-license  -opensource -opengl desktop -platform win32-g++  -prefix "D:\pg-Qt\5.10.0\mingw53_32_static" -sql-sqlite  -sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs

-nomake tools -nomake examples -nomake tests -openssl-linked  OPENSSL_LIBS="-llibssl -llibcrypto -lgdi32" -L D:\pg-Qt\5.10\openssl-1.0.1c_static_w32_mingw -I D:\pg-Qt\5.10\openssl-1.0.1c_static_w32_mingw\include-skip

qt3d  -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextra

1)如果不需要包含OpenSSL,去掉-openssl-linked  OPENSSL_LIBS="-llibssl -llibcrypto -lgdi32" -L D:\pg-Qt\5.10\openssl-1.0.1c_static_w32_mingw -I D:\pg-Qt\5.10\openssl-1.0.1c_static_w32_mingw\include

2)我跳过了一下包,如果你需要这些,去掉-skip qt3d  -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview

-skip qtwinextra

579c39f4c5f8e3cf2028ddab22509cbe.png

参数说明:

-confirm-license -opensource  :使用开源许可

-opengl desktop :桌面版

-platform win32-g++  :生成的编译器类型为:windows C++编译器

-release  :生成的编译器可编译产品: 发布版

-static  :生成的编译器为 静态链接编译器

-static-runtime:生成的编译器使用静态运行时库

-nomake tools:不编译tools

-prefix "5.10.0-desktop-mingw53-rel-static"  :生成的编译器安装位置

注:

如果出错,将D:\pg-Qt\5.10.0\qt_build_mingw53_32_static下文件全部删除,重新configure

1)通过shadow-build方法配置可实现源码和编译产生的文件如Makefiles, object files和其他中间文件的彻底分离。编译文件存放在:D:\pg-Qt\5.10.0\qt_build_mingw53_32_static

2) 也可以直接切换到F:\qt-everywhere-src-5.10.0\目录,

3) 然后执行:configure.bat  -static -release -confirm-license  -opensource -opengl desktop -platform win32-g++  -prefix "D:\pg-Qt\5.10.0\mingw53_32_static "  -sql-sqlite  -sql-odbc -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -make libs  -nomake tools -nomake

examples -nomake tests -openssl-linked  OPENSSL_LIBS="-llibssl -llibcrypto -lgdi32" -L D:\pg-Qt\5.10\openssl-1.0.1c_static_w32_mingw -I D:\pg-Qt\5.10\openssl-1.0.1c_static_w32_mingw\include-skip

qt3d  -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextra

4) 但产生编译文件在F:\qt-everywhere-src-5.10.0\中

配置没有错误后的输出结果类似下图,不过最好检查自己需要的模块是否为yes:

ebe9043baaba4cd26178dbf91355f486.png

4 编译Qt库

运行下面命令编译Qt库

mingw32-make

过程较长,我安装时没有跳过东西,用了8小时!

注:若前面编译过Qt库,需执行下面命令,mingw32-make clean清除(该方法为官方文档推荐方法,本人推荐直接删除“D:\pg-Qt\\5.10.0\qt_build_mingw53_32_static”文件夹下的全部内容重新配置,这样更彻底、快速)。

5 安装Qt

mingw32-make install

6 配置Qt库

1. 把编译的静态Qt库放到  动态的Qt库所在目录,直接复制动态Qt库\bin目录下的qt.conf文件,或在静态库\bin目录下建立qt.conf文件,里面输入以下内容:

[Paths]

Prefix=..

2. 打开D:\pg-Qt\5.10.0\mingw53_32_static\mkspecs\win32-g++\qmake.conf,

找到 QMAKE_LFLAGS_DLL

将后面都改成 -static

再加一行 QMAKE_LFLAGS

后面也改成 -static

结果:

QMAKE_LFLAGS               = -static

QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads

QMAKE_LFLAGS_EXCEPTIONS_OFF =

QMAKE_LFLAGS_RELEASE    = -Wl,-s

QMAKE_LFLAGS_DEBUG      =

QMAKE_LFLAGS_CONSOLE    = -Wl,-subsystem,console

QMAKE_LFLAGS_WINDOWS    = -Wl,-subsystem,windows

QMAKE_LFLAGS_DLL        = -static

3. 复制动态库中的bin/qmlscene.exe到静态库的bin文件夹中。否则在Qt Creator中添加Qt库时会报qmlscene未安装的错误。

4. 从动态链接版的Qt库的bin文件夹中复制Qt5Core.dll到静态链接版的lib文件夹中。

注:① 如果不执行此步,在Creator的Qt Version中将会显示“x86-windows-unknown-pe-32bit”。

5. 拷贝qml文件

因为一些我还没了解的原因,编译出来的Qt,在D:\pg-Qt5.10.0\mingw53_32-static\qml\QtQuick\Controls目录下是没有.qml文件,如下图,左边为普通的版本,右边为静态编译版本Qt。右边qml文件一个都没有。所以,这些qml文件都需要手动拷贝下。

74d12392fa5230f81ea6da6dc834005c.png

7 集成到Qt Creator 中

工具--选项--构建和运行

在Qt Versions选项卡中添加D:\pg-Qt\5.10.0\mingw53_32_static\bin\qmake.exe静态配置后,点击“Apply”按钮。

82a949b30be3d8dcdd3c9ac1bcc6a23d.png

在Kit选项卡中按下图配置。

6720957dd31f8293defe97814025acce.png

8使用该 “windows静态链接库 ”套件编译出项目的release版静态链接软件

创建或打开项目-进入项目-点击“项目”-配置使用该库

0429da291197f5df8ab083508731cdae.png

8f816aa95800b2e6a1e1f1cb7deb3397.png

点击-运行。

15c771db277a27025de229af0e2b0b26.png

参考资料

(1) http://doc.qt.io/qt-5/windows-support.html

(2) http://doc.qt.io/qt-5/windows-requirements.html

(3) http://doc.qt.io/qt-5/windows-building.html

(4) http://doc.qt.io/qt-5/configure-options.html

(5) http://blog..net/lixiaoxin1989/article/details/53838277

(6) http://blog..net/wsj18808050/article/details/72862478

(7)  Qt for Windows:Qt 5.9.0 MinGW 静态编译版本(包含OpenSSL)

http://blog..net/wsj18808050/article/details/72862478

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值