Qt 应用程序打包成安装文件

欢迎关注公众号: fensnote

编译Release版本,拷贝依赖库文件

选择Release模式

在QtCreater选择工程的Release编译,编译出Release版本的exe文件;
选择Release模式编译

使用windeployqt.exe命令提取用到的dll库

打开Qt的Mingw的命令行界面:
Qt命令行界面
在命令行中,切换到exe文件所在文件夹,然后执行命令:

windeployqt lock.exe

执行如下,这个命令会把该exe所用到的库文件都复制过来:

E:\qtwork\lock-Release\release>windeployqt lock.exe
E:\qtwork\lock-Release\release\lock.exe 32 bit, release executable
Adding Qt5Svg for qsvgicon.dll
Skipping plugin qtvirtualkeyboardplugin.dll due to disabled dependencies (Qt5Qml Qt5Quick).
Direct dependencies: Qt5Core Qt5Gui Qt5Widgets
All dependencies   : Qt5Core Qt5Gui Qt5Widgets
To be deployed     : Qt5Core Qt5Gui Qt5Svg Qt5Widgets
Updating Qt5Core.dll.
Updating Qt5Gui.dll.
Updating Qt5Svg.dll.
Updating Qt5Widgets.dll.
Updating libGLESV2.dll.
Updating libEGL.dll.
Updating D3Dcompiler_47.dll.
Updating opengl32sw.dll.
Updating libgcc_s_dw2-1.dll.
Updating libstdc++-6.dll.
Updating libwinpthread-1.dll.
Patching Qt5Core.dll...
Creating directory E:/qtwork/lock-Release/release/iconengines.
Updating qsvgicon.dll.
Creating directory E:/qtwork/lock-Release/release/imageformats.
Updating qgif.dll.
Updating qicns.dll.
Updating qico.dll.
Updating qjpeg.dll.
Updating qsvg.dll.
Updating qtga.dll.
Updating qtiff.dll.
Updating qwbmp.dll.
Updating qwebp.dll.
Creating directory E:/qtwork/lock-Release/release/platforms.
Updating qwindows.dll.
Creating directory E:/qtwork/lock-Release/release/styles.
Updating qwindowsvistastyle.dll.
Creating E:\qtwork\lock-Release\release\translations...
Creating qt_bg.qm...
Creating qt_ca.qm...
Creating qt_cs.qm...
Creating qt_da.qm...
Creating qt_de.qm...
Creating qt_en.qm...
Creating qt_es.qm...
Creating qt_fi.qm...
Creating qt_fr.qm...
Creating qt_gd.qm...
Creating qt_he.qm...
Creating qt_hu.qm...
Creating qt_it.qm...
Creating qt_ja.qm...
Creating qt_ko.qm...
Creating qt_lv.qm...
Creating qt_pl.qm...
Creating qt_ru.qm...
Creating qt_sk.qm...
Creating qt_uk.qm...

如下图,复制过来的文件:
在这里插入图片描述
测试一下是否能直接运行,有时可能还是复制不全,那就再根据提示缺少哪一个,找过来哪一个,很幸运,这个可以运行:
运行测试
这样接下来就可以对这个文件夹进行打包了。

使用Inno Setup打包

Inno Setup是一款国外的免费打包软件,可以把可执行文件exe与其依赖的dll库文件一起打包成一个安装文件(setup.exe)。官网下载请点这里:https://jrsoftware.org/isdl.php
inno setup 官网

下载安装

下载安装这里就不详细介绍了,windows应用安装基本都一样,一路“下一步”。

安装完成后,开始打包

中间直接使用默认,不需要说明的步骤我就跳过去了。
创建打包脚本:
创建打包脚本
填写应用信息,包括版本、发布者、网站:
填写应用信息
安装目录设置:
安装目录设置
选择要打包的文件和文件夹:
选择要打包的文件和文件夹
安装语言设置:
在这里插入图片描述
生成的安装文件配置:
在这里插入图片描述
然后就配置结束了:
在这里插入图片描述
在这里插入图片描述
至此打包脚本配置完成,下面就可以打包了。

开始编译打包

接着上面的步骤:
在这里插入图片描述
会提示你是否保存脚本:
在这里插入图片描述
编译打包:
在这里插入图片描述

打包完成

打包完成,桌面上会生成一个安装文件(exe):
在这里插入图片描述

安装测试

就和平时安装 windows一样,一路“下一步”:
在这里插入图片描述
在这里插入图片描述
安装好会在桌面上创建快捷方式(安装时选择在桌面创建快捷方式),这个没有图标是因为这个程序编译时没有设置图标,双击这个图标运行:
在这里插入图片描述
可以正常运行,现在就可以把这个安装包发布,安装到别的电脑上了。
注意:Qt5.7以后的版本都不再支持XP系统。

发布

打包好的文件就可以发给朋友用了!

<think>嗯...用户想了解如何将QT+VisualStudio开发的应用程序打包安装文件。看起来用户是个开发者,可能刚完QT项目开发,现在需要分发程序。仔细看看用户提供的参考资料...有四个引用都是关于打包的。引用[1]和[2]详细说明了QT程序使用windeployqt收集依赖,引用[3]和[4]则介绍了VS的InstallerProjects扩展。用户应该需要结合这两部分的操作。用户可能遇到的问题是:QT程序依赖库多,直接复制exe文件到其他电脑会运行不了。所以真正的需求不只是打包安装文件,而是要确保依赖项也被正确包含其中。从技术上看,这个过程需要分步解决:首先要确保程序能独立运行(处理QT依赖),然后才能考虑打包安装。引用[2]提到的NSIS和引用[3][4]提到的InstallerProjects都是可行方案,但后者可能对VS用户更友好。考虑到用户开发环境是VisualStudio,选择InstallerProjects扩展可能更合适,因为它能集在VS里操作。不过需要提醒用户注意两个关键点:一是必须先用windeployqt处理好依赖库;二是安装包的目标系统架构要一致(比如都是x64)。用户可能还会关心:安装包是否要带卸载功能?是否需要创建开始菜单快捷方式?这些在InstallerProjects里都能配置。另外注意到引用[2]提到需要复制配置文件,这点也很重要,应该包含在回答里。最后需要给用户明确的操作指引,重点步骤如下:Release编译→windeployqt收集依赖→验证程序独立运行→安装扩展→创建安装项目→添加主输出→设置快捷方式→处理配置文件→生安装包。最好强调"验证独立运行"这个环节,很多用户会跳过这步导致打包失败。对了,还得提醒版本兼容性。用户引用里提到Qt5.13和VS2017/2022,要说明这些环境都适用。至于32/64位问题...用户给的路径都是x64,就默认推荐64位方案吧。</think> 以下是结合QT和Visual Studio将应用程序打包安装文件的详细步骤,整合了引用内容的核心要点: ### 一、生可执行文件 1. **Release模式编译** - 在VS中选择`Release|x64`配置(参考引用[2][3]) - 生解决方案(快捷键`Ctrl+Shift+B`) - 生的可执行文件(.exe)会出现在`项目目录/x64/Release/`中 2. **处理QT依赖** ```bash windeployqt.exe 程序路径.exe ``` - 示例命令(引用[1]): ```bash C:\Qt\Qt5.13.1\5.13.1\msvc2015_64\bin\windeployqt.exe D:\GIICS\Release\YourApp.exe ``` - 该命令自动复制所有QT依赖库到exe所在目录(引用[2]) > :heavy_check_mark: 验证:将整个Release文件夹复制到无QT环境的电脑,确认程序能独立运行(必要步骤)。 --- ### 二、创建安装包 #### 方法1:使用VS安装项目(推荐) > **需先安装扩展**:VS菜单栏 → 扩展 → 管理扩展 → 搜索`Microsoft Visual Studio Installer Projects`(引用[3][4]) 1. **新建安装项目** - 解决方案右键 → 添加 → 新建项目 → 搜索`Setup Project`(图[4]) <br>![安装项目创建界面](https://via.placeholder.com/300x200?text=Setup+Project+界面示例) 2. **添加程序文件** - 右键安装项目 → Add → 项目输出 → 选择主输出(图[3]) - 手动添加依赖文件:将Release目录下所有文件拖入安装项目 3. **关键配置** | 配置项 | 操作 | |---|---| | 快捷方式 | 右键`主输出` → `Create Shortcut` → 拖到`User's Programs Menu` | | 安装位置 | 右键安装项目 → Properties → 修改`DefaultLocation` | | 卸载功能 | 添加`C:\Windows\System32\msiexec.exe` 参数:`/x [ProductCode]` | #### 方法2:使用NSIS(高级方案) > **步骤概要**(引用[2]): > 1. 安装[NSIS](https://nsis.sourceforge.io/) > 2. 准备发布文件夹(包含exe+所有依赖) > 3. 编写NSIS脚本指定: > ```nsis > OutFile "YourInstaller.exe" > InstallDir "$PROGRAMFILES64\YourApp" > Section > SetOutPath $INSTDIR > File /r "D:\YourApp\Release\*.*" ; 包含所有文件 > CreateShortCut "$DESKTOP\YourApp.lnk" "$INSTDIR\YourApp.exe" > SectionEnd > ``` --- ### 三、生安装包 - VS安装项目:右键安装项目 → **生** → 在项目目录的`\Debug\`或`\Release\`下获得`.msi`安装包 - NSIS方案:通过NSIS编译器生`.exe`安装文件 --- ### ⚠️ 常见问题 1. **DLL缺失** - 运行安装包时报错:检查是否用`windeployqt`处理了所有QT依赖 - 特殊DLL:手动复制`vcruntime140.dll`, `msvcp140.dll`(位于VC安装目录) 2. **资源文件缺失** - QRC资源:确保`.qrc`文件正确编译进exe - 外部资源:在安装项目中添加配置文件目录(引用[2]中"配置"文件夹) --- ### 对比总结 | 方法 | 优点 | 适用场景 | |------|------|----------| | VS安装项目 | 与VS集,图形界面操作 | 简单应用、需MSI格式安装包 | | NSIS | 更小安装包体积,高度定制 | 专业分发、需要复杂安装逻辑 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fensnote

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值