下载地址:
https://download.qt.io/archive/qt/5.12/5.12.10/qt-opensource-windows-x86-5.12.10.exe

注意事项:
高版本的为everywhere版本安装包比较大。

选择安装组件:
MinGW 7.3.0 32-bit
MinGW 7.3.0 64-bit
MSVC 2017 32-bit
MSVC 2017 64-bit
选择其中一种即可(这里选MinGW 7.3.0 32-bit),Minimalist GNU for Windows,不依赖于第三方库。

安装编译器及运行环境: 安装MSVC组件时,需要安装
https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/
下载并安装Visual Studio 2010 VC++ Redistributable(实际上是vcredist_x64/vcredist_x86)
下载并安装Microsoft 生成工具 2015 (编译器)


修改应用程序图标:
修改.pro工程文件,指定RC_ICONS选项

QT  += core gui
#  添加RC_ICONS指定图标文件
RC_ICONS  = SerialPort.ico

# 指定生成应用程序的名称
TARGET=SerialPort

软件打包Windows
1.编译release版本,并将其复制到发布目录中;

2.复制依赖文件
打开MinGW 7.3.0 32-bit命令提示符(名称与安装版本有关)
切换至发布目录,执行windeployqt命令,把所需的依赖文件复制至应用程序目录下,然后将整个目录发布。

cd /d F:\publish\
windeployqt.exe SerialPort.exe

也可以不切切换目录,直接指定文件路径执行,也会将依赖文件复制至目标目录中。

3.生成单文件(Enigma Virtual Box),根据提示可将目录打包成单文件。


Linux打包程序

新建打包脚本pack.sh内容如下:

#!/bin/sh  
 #你需要发布的程序名称
exe="SerialPort"
#创建文件夹的位置
des="/opt/apps" 
# 通过ldd命令找出依赖的动态链接库文件
deplist=$(ldd $exe | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')  
cp $deplist $des

然后向SerialPort.sh文件里添加以下内容(内容不需要更改):

#!/bin/sh  
# 带路径的情况下,提取可执行文件名
appname=`basename $0 | sed s,\.sh$,,`  
# 带路径的情况下,提取路径
dirname=`dirname $0`  
# 去除前边的根目录符号
tmp="${dirname#?}"  

if [ "${dirname%$tmp}" != "/" ]; then  
    dirname=$PWD/$dirname  
fi  

LD_LIBRARY_PATH=$dirname  
export LD_LIBRARY_PATH  

$dirname/$appname "$@"