您的位置:首页 > 编程语言 > Qt开发

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

2017-06-04 23:13 1116 查看

概述

5月31号,Qt这一次竟然没跳票,如约发布了LTS的5.9

感觉这一次5.9用的人会很多,毕竟LTS,而且确实改进很大,所以这一次完整的写一遍静态编译的步骤

我这里只涉及MinGW版本的静态编译,包含OpenSSL,不包含MySql

我使用的是 Windows10 64bit 操作系统

我也写了一篇,将如何静态发布QML开发的程序,是基于本文的,链接:

http://blog.csdn.net/wsj18808050/article/details/72865917


直接使用我的编译成果

这个最为简单,不需要自己编译Qt,但是Qt等安装路径这些都会被定死,而且我编译时跳过或者没有启用的模块将会无法使用。

安装 Qt5.9.0 MinGW 版本

前往百度云,下载压缩包:

https://pan.baidu.com/s/1o8LmUy2


解压
openssl-1.0.1c_static_w32_mingw.zip
C:\Dev
目录

解压
Qt5.9.0_MinGW_static.part1.rar
C:\Qt
目录

转跳至本文的
套件配置
,然后配置套件,接着直接使用就可以了

准备步骤

如果你希望自己编译Qt,可以从这里开始看

下载Qt

5.9开始,Qt在Windows上的安装包合并了,只有一个版本。就是 Qt 5.9.0 for Windows (2.3 GB),安装的时候再选择不同的套件。下载地址如下:

官网地址(需要登录Qt账号):

https://www.qt.io/download-open-source/#section-3


exe下载地址:

http://download.qt.io/official_releases/qt/5.9/5.9.0/qt-opensource-windows-x86-5.9.0.exe


安装Qt

选择路径



选择套件



我这里选择了Android,是因为我要用,不需要的同学可以不选择。

准备OpenSSL库

我配置的是1.0.1c版本的OpenSSL,关于OpenSSL的编译我不建议自己进行,比较麻烦。我是到这里直接下载OpenSSL的编译结果的:

http://www.cnblogs.com/findumars/p/6372223.html


下载后解压OpenSSL的zip压缩包(openssl-1.0.1c_static_w32_mingw.zip)到
C:\Dev
目录下

安装Perl

我选择的是:ActivePerl-5.22.1.2201-MSWin32-x64-299574.msi

安装包:

http://downloads.activestate.com/ActivePerl/releases/5.22.1.2201/ActivePerl-5.22.1.2201-MSWin32-x64-299574.msi


这个资源貌似官网已经没了,链接直接打开后就报错,但是丢到迅雷里任然可以正常下载

官网地址:

http://www.activestate.com/activeperl/downloadsc


安装 Python

我选择的是:python-3.5.1.exe

安装包:

https://www.python.org/ftp/python/3.5.1/python-3.5.1.exe


官网地址:

https://www.python.org/downloads/


安装好Python后,将安装目录添加到PATH环境变量中(安装的时候如果选上“Add Python 3.5 to PATH”会自动添加)

检查

运行Qt的命令行工具

输入以下命令看看 gcc 编译器是否配置正确

gcc -v


再输入以下命令看看 perl 解释器是否配置正确

perl -v


输入以下命令看看 python 是否配置正确

python


按 Ctrl + Z 回车,可以退出 python

编译Qt

打开Qt命令行工具

cd到源码目录

cd C:\Qt\Qt5.9.0_MinGW\5.9\Src


配置Qt,准备编译

我这里跳过了一些模块,如果你需要这些模块,在自己编译的时候可以去掉skip

configure.bat -static -release -platform win32-g++ -prefix "C:\Qt\Qt5.9.0_MinGW_static" -qt-sqlite -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -openssl-linked -opensource -confirm-license -make libs OPENSSL_LIBS="-llibssl -llibcrypto -lgdi32" -L C:\Dev\openssl-1.0.1c_static_w32_mingw -I C:\Dev\openssl-1.0.1c_static_w32_mingw\include -nomake tools -nomake examples -nomake tests -skip qt3d -skip qtcanvas3d -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextras


查看输出结果

根据自己需求,查看对应的模块是否正常

Desktop OpenGL ....................... yes


OpenGL正常

OpenSSL ................................ yes


OpenSSL正常

Qt Sql ................................. yes


Sql模块正常

SQLite ................................. yes


SQLite正常

MySql .................................. no


MySql不正常,因为我没有装MySql开发环境,那么编译出来的Qt是无法正常连接到MySql的

编译Qt

为了避免一些奇怪的问题,我使用单线程编译

编译非常慢,请至少准备几个小时的空余时间

如果你使用的是Win10请注意不要让Win10的更新后的自动重启打断编译,我编译了一半的时候就差点被Win10自动重启了

mingw32-make


安装Qt

mingw32-make install


修复一些小问题

修改编译配置

打开文件
C:\Qt\5.9.0_MinGW_static\mkspecs\win32-g++\qmake.conf


找到
QMAKE_LFLAGS_DLL


将后面都改成
-static


再加一行
QMAKE_LFLAGS


后面也改成
-static




拷贝qml文件

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



套件配置

打开QtCreator

选择上方工具栏中的 -> 工具 -> 选项 -> 构建和运行

在上方选项卡中选择 Qt Versions,并且点击右侧的添加

打开qmake.exe,路径是:C:\Qt\Qt5.9.0_MinGW_static\bin\qmake.exe



在上方选项卡中选择 构建套件 ,然后配置一个新的套件,参数如下



使用

创建工程,使用新配置的套件



左下角,切换到release模式,直接编译



查看编译结果,运行

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: