当前位置: 首页 > news >正文

制作安装包

使用打包工具(如 NSIS、Inno Setup、Advanced Installer)制作安装包。
示例:Inno Setup 制作安装包

Inno Setup

Inno Setup 是一个免费且强大的安装包制作工具,可以用来打包 Qt 项目或其他软件程序。以下是使用 Inno Setup 制作安装包的完整步骤:

  • 需要的文件:
    程序的可执行文件(MyApp.exe)。
    程序运行所需的动态库文件(如 .dll 文件)。
    资源文件(如图片、配置文件等)。
    依赖的插件文件(如 Qt 的 platforms/qwindows.dll)。
  • 项目目录文件
Build/MyApp.exeQt5Core.dllQt5Gui.dllQt5Widgets.dllplatforms/qwindows.dllresources/config.jsonicon.png

直接运行 Inno Setup Compiler,它自带脚本编辑器。

# myapp.iss文件
; 定义安装包的基本信息
[Setup]
AppName=My Qt Application                   ; 程序名称
AppVersion=1.0                              ; 程序版本号
DefaultDirName={pf}\MyQtApp                 ; 默认安装路径 (C:\Program Files\MyQtApp)
DefaultGroupName=MyQtApp                    ; 开始菜单文件夹名称
OutputBaseFilename=MyQtAppSetup             ; 生成的安装程序文件名
Compression=lzma                            ; 压缩算法
SolidCompression=yes                        ; 开启固体压缩; 定义安装包的文件
[Files]
Source="Build\MyApp.exe"; DestDir="{app}"; Flags: ignoreversion
Source="Build\Qt5Core.dll"; DestDir="{app}"; Flags: ignoreversion
Source="Build\Qt5Gui.dll"; DestDir="{app}"; Flags: ignoreversion
Source="Build\Qt5Widgets.dll"; DestDir="{app}"; Flags: ignoreversion
Source="Build\platforms\*"; DestDir="{app}\platforms"; Flags: recursesubdirs ignoreversion
Source="Build\resources\*"; DestDir="{app}\resources"; Flags: recursesubdirs ignoreversion; 创建快捷方式
[Icons]
Name="{group}\My Qt Application"; Filename="{app}\MyApp.exe" ; 开始菜单快捷方式
Name="{commondesktop}\My Qt Application"; Filename="{app}\MyApp.exe"; Tasks: desktopicon ; 桌面快捷方式; 安装选项
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; 安装后的操作
[Run]
Filename: "{app}\MyApp.exe"; Description: "{cm:LaunchProgram,My Qt Application}"; Flags: nowait postinstall skipifsilent

[Setup]:安装包基本信息
AppName:软件名称。
DefaultDirName:默认安装目录。
OutputBaseFilename:生成的安装包文件名。
[Files]:安装文件
Source:源文件路径。
DestDir:目标安装路径,{app} 代表用户安装目录。
Flags:控制文件的安装行为,常用的有:
ignoreversion:忽略文件版本检查。
recursesubdirs:递归包含子目录下的文件。
[Icons]:快捷方式
Name:快捷方式的名称。
Filename:快捷方式指向的目标文件路径。
[Tasks]:安装选项
定义安装时的可选任务,例如创建桌面图标。
[Run]:安装后执行
设置安装完成后运行程序(可选)。

  • 编译脚本
    打开 Inno Setup Compiler,加载刚刚编写的 .iss 文件。
    点击 Compile(编译) 按钮,生成安装包(默认在脚本文件同目录下)。
  • 测试安装包
    程序正常安装到指定目录。
    所有依赖文件(如 .dll 和资源文件)都正确复制。
    程序可以正常运行。
  • 常见问题
  1. 程序运行失败,提示缺少 .dll
    使用 windeployqt 工具分析你的程序依赖,确保所有必要的库文件已被复制到 Build/ 文件夹中。
  2. 平台插件缺失
    Qt 项目需要平台插件(如 platforms/qwindows.dll),确保将其正确打包。
  3. 安装包文件过大
    使用 Inno Setup 的 Compression=lzma 和 SolidCompression=yes 压缩选项减少体积。
    删除未使用的动态库或资源文件。
http://www.lryc.cn/news/504713.html

相关文章:

  • P8615 拼接平方数 P8699 排列数
  • 【C语言】拆解C语言的编译过程
  • 【C++】青蛙跳跃问题解析与解法
  • 自动驾驶AVM环视算法--python版本的俯视TOP投影模式
  • Go 语言与时间拳击理论下的结对编程:开启高效研发编程之旅
  • Qt+OPC开发笔记(一):OPCUA介绍、open62541介绍、编译与基础环境Demo
  • ElasticSearch 常见故障解析与修复秘籍
  • 序列模型的使用示例
  • 对rust的全局变量使用drop方法
  • Node.js教程入门第一课:环境安装
  • Visual Studio 使用 GitHub Copilot 扩展
  • 【Qualcomm】IPQ5018获取TR069 WiFi 接口Stats状态方法
  • 数字营销咨询,照亮企业营销数字化每一步
  • 修改vscode中emmet中jsx和tsx语法中className的扩展符号从单引号到双引号 - HTML代码补全 - 单引号双引号
  • 【Cmake】
  • Flutter 内嵌 unity3d for android
  • sqlite加密-QtCipherSqlitePlugin 上
  • 正交投影 (Orthographic Projection) 详解
  • 盛元广通畜牧与水产品检验技术研究所LIMS系统
  • 三维空间刚体运动4-1:四元数表示变换(各形式相互转换加代码——下篇)
  • PyTorch如何通过 torch.unbind 和torch.stack动态调整张量的维度顺序
  • 【Unity3D】报错libil2cpp.so找不到问题
  • 事件冒泡机制详解
  • 红米Note 9 Pro5G刷LineageOS
  • 6.3.1 MR实战:计算总分与平均分
  • ARM循环程序和子程序设计
  • 静态路由、RIP、OSPF、BGP的区别
  • 知识分享第二十八天-数学篇一
  • BigDecimal在进行除法运算时需要注意四舍五入的位置
  • 第二部分:进阶主题 14 . 性能优化 --[MySQL轻松入门教程]