Qt5.7.0 minGW在Windows7下静态编译---Qt

转自:http://dynamicbsd.blog.chinaunix.net/uid-20698826-id-5761669.html

另外Qt5.8的可参考https://www.cnblogs.com/ike_li/p/6860089.html


环境:
windows系统环境:window7企业版64位
QT版本:5.7.0 Windows-32bit版本
 

1、下载qt
 

https://www.qt.io/download-open-source/#section-2,目前下载最新版本需要注册了
Qt5.7.0 minGW在Windows7下静态编译---Qt
选择“·  Qt 5.7.0 for Windows 32-bit (VS 2013, 909 MB)    (info)

 

2、安装QT


Qt5.7.0 minGW在Windows7下静态编译---Qt
选择安装位置,下一步
Qt5.7.0 minGW在Windows7下静态编译---Qt
选择需要安装的组件,按上图勾选,下一步,直到安装完成

 

3、安装Perl


我安装的是:ActivePerl-5.24.0.2400-MSWin32-x86-64int-300560.exe
下载:http://www.activestate.com/activeperl/downloads
安装路径:C:\Perl
安装过程中勾选“添加到环境变量”



4、安装python


我安装的是:python-3.5.2.exe
安装路径:C:\Python35-32
安装过程中勾选“添加到环境变量”



5、配置环境变量

将“D:\Qt\Qt5.7.0\5.7\mingw53_32\bin”添加到系统环境变量path中
Perl和python安装过程中选择“添加到环境变量”选项后,不再需要手动添加环境变量到path中


6、编译QT


在开始菜单找到“Qt 5.7 for Desktop (MinGW 5.3.0 32 bit)”,并打开终端

 

Qt5.7.0 minGW在Windows7下静态编译---Qt

 


7、检查配置


在“Qt 5.7 for Desktop (MinGW 5.3.0 32 bit)”终端中输入下面的命令检测Qt安装环境
输入以下命令看看 gcc 编译器是否配置正确
gcc –v
再输入以下命令看看 perl 解释器是否配置正确
perl –v
输入以下命令看看 python 是否配置正确
python
按 Ctrl + Z 回车,可以退出 python
运行python是报错:
解决方法:
安装的是python3.5.2,这个版本需要的vc版本是2015的了,下载安装Microsoft Visual C++ 2015


8、配置


编辑D:\Qt\Qt5.7.0\5.7\Src\qtbase\mkspecs\win32-g++\qmake.conf
找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,后面赋值为-static
QMAKE_LFLAGS        = -static
QMAKE_LFLAGS_DLL    = -static
保存,退出(如果不做这个修改,生成的执行文件要依赖libgcc_s_dw2-1.dll,libstdc++-6.dll,libwinpthread-1.dll)
进入qt源码目录:
cd D:\qt\qt5.7.0\5.7\src
配置命令:
configure.bat -confirm-license -opensource -platform win32-g++ -mp -debug-and-release -static -prefix "D:\Qt\5.7.0_mingw_static" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d


9、编译


mingw32-make -j2
注:本处为2个线程编译,电脑好的可以开更多的线程,编译速度也更快

 


10、安装


mingw32-make install
安装完成后,可以将Qt源码目录删除,释放磁盘空间

 

11、配置Qt Creator


打开Qt Creator,菜单栏选择“工具 -> 选项 -> 构件和运行 -> Qt Versions”,点击右边“添加”按钮,找到静态编译后的qmake.exe,
我的路劲如下:D:\Qt\5.7.0_mingw_static\bin\qmake.exe
Qt5.7.0 minGW在Windows7下静态编译---Qt
设置完成后,点击"Apply"
菜单栏选择“Qt Creator -> 工具 -> 选项 -> 构件和运行 -> 编译器”

 

Qt5.7.0 minGW在Windows7下静态编译---Qt
菜单栏选择“Qt Creator -> 工具 -> 选项 -> 构件和运行 -> 构建条件(Kit)”
点击右边“添加”按钮
Qt5.7.0 minGW在Windows7下静态编译---Qt

 

点击Apply,应用设置



12、配置编译器


用记事本打开 D:\Qt\5.7.0_mingw_static\mkspecs\win32-g++\qmake.conf文件
找到 QMAKE_LFLAGS 和 QMAKE_LFLAGS_DLL
将后面都改成 -static



13、使用


打开Qt,新建工程,选择静态编译的套件
Qt5.7.0 minGW在Windows7下静态编译---Qt
左下角选择release模式
Qt5.7.0 minGW在Windows7下静态编译---Qt
静态编译,如果选择debug,可以编译成功,但是编译出来的exe非常大,几百mb
Ctrl+B编译,编译完成后,静态编译版本的exe就完成
Qt5.7.0 minGW在Windows7下静态编译---Qt