将Qt程序打包好,使其能够放在其他未安装Qt的Windows系统上也可运行,有两种方法,第一种是使用专门的打包软件来打包可执行程序和需要的相关库;第二种是静态编译Qt程序。
- 使用专门的打包软件(亲测可行)
https://www.debugger.wiki/article/html/1565166278520238
实测的时候生成的是xxx_boxed.exe文件。
- 静态编译Qt程序
https://www.cnblogs.com/ike_li/p/6860089.html
在默认情况下,用QtCreator编译程序时,使用的是动态编译。编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件。如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。
-
- Qt5.10 源码下载
https://download.qt.io/archive/qt/5.12/5.12.10/
2.2 win10 静态编译制作
在win10系统 静态编译制作过程如下:
注意:最好电脑性能比较好,存储空间至少需要30G以上的盘,否则编译和安装都会很慢甚至出现问题。
2.2.1 安装Qt5.12.10
http://c.biancheng.net/view/3858.html
注意安装的时候需要勾选安装源码,如下图:
注意:Qt5 和Qt4 的安装方法很不一样,Qt5不需要单独再安装Qt Creator和mingW32,而是随着Qt5.12.10 一起安装,只需要在安装过程中勾选上即可,方便了很多。
2.2.2 安装Perl
我选择的是ActivePerl-5.26
安装包下载地址:https://pc.qq.com/detail/12/detail_3012.html
注:环境变量安装过程自动添加的,如果没有添加,手动添加。
2.2.3 安装Python
我选择的是python-3.5.2.exe
安装包下载地址:https://www.python.org/downloads/release/python-352/
注:安装好Python后,将安装目录添加到PATH环境变量中(安装的时候如果选上“Add Python 3.5 to PATH”会自动添加)
2.2.4 编译Qt
https://www.geek-share.com/detail/2730545453.html
2.2.4.1 配置
Windows进入win+R 输入cmd进入命令行。
切换到Qt的源码目录
H:\Qt\5.12.10\Src
运行配置命令
configure.bat -confirm-license -opensource -platform win32-g++ -mp -debug-and-release -static -prefix "H:\Qt\5.12.10\mingw73_64_static" -qt-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -opengl desktop -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d
注:这里配置的时候,跳过了qtwebengine、qtwebview、qt3d、wayland如果需要这些模块可以去掉skip
注意:此处的配置命令至关主要,如果命令不对编译出来的Qt功能可能不全,如果编译过之后发现有问题需要在没有编译过的源码基础上编译,在编译过的源码上编译出来有问题(我编译的时候没有重新用没有编译过的源码导致花了好多时间),所以在配置之前先拷贝一份源码(即Src目录),万一出错了还可以复制一份重新编译。
2.2.4.2 编译 (大概编译了五六个小时)
mingw32-make -j4
编译过程中总是卡死,可能是电脑性能不行,卡死的时候要点击鼠标让cmd窗口恢复,不然就会一直卡死。
2.2.4.3 安装
mingw32-make install
2.2.4.4 后续
在编译/安装好后,我们可以把源码目录删了,这可以释放出大约15G的空间,很可观。
2.2.5 Qt Creator新增静态编译
(1) 打开Qt Creator -> 工具 -> 选项 -> 构建和运行 -> Qt Versions
添加版本后,点击应用。
(2)构建套件:克隆一个,修改,注意Qt版本一定要记得选对。修改后,点击应用。
(3)配置编译器
记事本打开H:\Qt\5.12.10\mingw73_64_static\mkspecs\win32-g++\qmake.conf
添加一行QMAKE_LFLAGS = -static,修改 QMAKE_LFLAGS_DLL其值为-static
(4)新建工程选择 静态编译套件,编译出来就可以直接运行exe程序了。编译过程很慢,发布的时候最好选用release的,release的程序体积比debug小很多很多。
3. 遇到的问题
3.1 配置(configure)时报错mingw32-make 不是内部或外部命令
报错内容:mingw32-make 不是内部或外部命令
原因: 没有配置环境变量。
解决: 根据自己的安装路径把mingw32-make添加到环境变量中。
计算机—> 属性 —> 环境变量 —> 用户变量 —> path
加入";D:\SOFTWARE\Qt\Tools\mingw730_64\bin"
3.2 安装(install)时报错 python 不是内部或外部命令
报错内容如下图所示:
原因: 没有安装和配置perl和python环境。
解决:https://blog.csdn.net/xiaopei_yan/article/details/90441968
查看Qt5.12.10 源码Src目录下README文件,有perl和python 的版本要求,具体如下图所示:
4.qt 安装好后更新添加组件
https://blog.csdn.net/u012611644/article/details/89196593