前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C++】Qt:基于windeployqt+nsis程序打包和发布

【C++】Qt:基于windeployqt+nsis程序打包和发布

作者头像
DevFrank
发布2024-07-24 14:42:47
3670
发布2024-07-24 14:42:47
举报
文章被收录于专栏:C++开发学习交流

1.windeployqt和nsis介绍

windeployqt是一个Qt提供的非常有用的命令行工具,用于将Qt应用程序所需的所有依赖项自动复制到应用程序的构建目录中,以便在没有Qt安装的计算机上运行应用程序。

windeployqt可以自动查找并复制应用程序所需的Qt库文件、插件、QML文件以及其他依赖的库文件。它还会自动解析应用程序的依赖关系,确保所有依赖的库文件都正确复制到目标目录中,以便应用程序能够正确运行。

使用windeployqt非常简单。只需在命令行中运行以下命令:

代码语言:javascript
复制
# 编译好release程序后,进入对应路径
windeployqt <path_to_application>

这样就能确保应用程序能够在没有Qt安装的计算机上独立运行,而无需手动复制所有的依赖项。

nsis我用的版本是: nsis-3.02.1(最新版nsis是包含了下面的nisedit的)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.用nisedit制作脚本

1.新建向导脚本

在这里插入图片描述
在这里插入图片描述

2.填写应用信息

在这里插入图片描述
在这里插入图片描述

3.设置图标、语言等

在这里插入图片描述
在这里插入图片描述

4.设置目录与授权信息

在这里插入图片描述
在这里插入图片描述

5.选择打包的程序文件

在这里插入图片描述
在这里插入图片描述

6.设置快捷方式

在这里插入图片描述
在这里插入图片描述

7.安装后运行方式(只有一个.exe就默认)

在这里插入图片描述
在这里插入图片描述

8.设置卸载提示

在这里插入图片描述
在这里插入图片描述

9.完成向导

在这里插入图片描述
在这里插入图片描述

生成的脚本如下,可自定义更改:

在这里插入图片描述
在这里插入图片描述

比如要在安装开始的时候选择语言,可以添加以下脚本:

代码语言:javascript
复制
; Language files
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "SimpChinese"

;初始化函数
Function .onInit
  Push ""
  Push ${LANG_ENGLISH} ;添加英文代码 语言代码是系统变量,多语言引入后,自动加载,拼接方式是“LANG_语言”,可以查看NSIS手册,LANG_ENGLISH的编号为1033,LANG_SIMPCHINESE为2052;
  Push "English"
  Push ${LANG_SIMPCHINESE}   ;添加简体中文选项
  Push "简体中文"
  Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain
  LangDLL::LangDialog "Installer Language" "Please select the language of the installer" ;显示语言选择对话框
  Pop $LANGUAGE ;获得用户对于语言的选择结果 ‘$LANGUAGE’是多语言变量,在安装程序结束后,语言代码会存储在这个变量中,手动修改‘$LANGUAGE’的值后,安装包会重新选择最匹配的语言,参考最上面NSIS手册中选择界面语言步骤
  StrCmp $LANGUAGE "cancel" 0 +2
  Abort
  StrCmp $LANGUAGE 2052 ZH_INI EN_INI
  EN_INI:
    ;想干啥干啥
    Goto END
  ZH_INI:
        ;想干啥干啥
  END:
FunctionEnd

3.用NSIS软件编译脚本

加载上一步生成的脚本,编译即可:

在这里插入图片描述
在这里插入图片描述

测试安装完成后,生成桌面快捷方式如下:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.windeployqt和nsis介绍
  • 2.用nisedit制作脚本
  • 3.用NSIS软件编译脚本
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档