• Visual Studio配置Qt并通过NSIS实现项目打包


    Visual Studio配置Qt

    点击此处前往阿里软件源下载Qt,我这里使用的是Qt5.14.2,下载后双击安装。需要有Qt的账号,如果没有可以取Qt官网申请。依次点击下一步,再Qt组件选择时,建议如下图所示,将MSVC和MinGW都选中,并且32位和64位都安装上

    安装使用Visual Studio 2017,注意勾选"使用C++的桌面开发"
    在这里插入图片描述

    Visual Studio 2017配置Qt5.14.2,选择“工具",扩展和更新,搜索Qt并安装
    在这里插入图片描述
    在这里插入图片描述
    选择Qt VS Tools,选择Qt Versions,
    在这里插入图片描述
    添加Qt的MSVC路径,找到“qmake.exe",点击确认即可,将32位和64位都添加进去,方便使用时随时切换
    在这里插入图片描述

    NSIS安装

    前往官网,下载安装

    Qt工程打包

    windeployqt实现打包

    利用visual studio完成一个Qt工程,如下所示,教程在bilibili,选择x64和release
    在这里插入图片描述
    编译完成后会在工程目录下生成"x64/Release/CoinFlip.exe"文件
    在这里插入图片描述
    在桌面新建一个文件夹Coin,命名随意,将上述.exe文件拷贝至其中
    在这里插入图片描述
    打开Qt自带的命令框(不要使用windows自带的cmd)

    在命令框中进入到上述新建的文件夹”Coin“,输入`windeployqt CoinFlip.exe`,回车,等待程序执行结束 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b560e26ce97c47829035b0aba0b2ee56.png) 结束完成后如下所示,绿色框中的“exe”文件可以双击直接执行。整个打包文件夹发送给其他用户也能够打开 ![在这里插入图片描述](https://img-blog.csdnimg.cn/82f93e4178e349eaaba6982ba28ef757.png) **注意到:你可能会没有红框中的文件**,你需要检查环境变量,保证你有如下的环境变量:
    VCINSTALLDIR
    D:\programming\Microsoft Visual Studio\2017\Community\VC
    
    • 1
    • 2

    值为Visual Studio的安装路径下的VC
    在这里插入图片描述

    使用NSIS进一步打包

    将上述打包的整个Coin文件夹压缩成“.zip”文件,打开NSIS软件。按照如下所示步骤,完成后点击右下角generate,等待完成就行
    在这里插入图片描述
    完成后出现exe文件,双击安装即可
    在这里插入图片描述

    使用NSIS自定义脚本实现进一步打包

    clone此仓库,进入到VimeoSetup目录,将上一步的Coin文件夹替换VimeoSetup下的App文件夹并重命名App
    在这里插入图片描述
    打开“NSIS-UI-Plugin”工程
    在这里插入图片描述
    选择Release或Debug,选择x86,Qt VS Tools中版本选择x86
    在这里插入图片描述
    在"属性"中修改"Qt Installation",点击“应用”,“确定”
    在这里插入图片描述
    完成后,右键"生成",完成后在"Win32\Release"下生成"NSIS-UI-Plugin.dll"文件
    在这里插入图片描述
    如果出现报错但是生成了"NSIS-UI-Plugin.dll"文件,就不用担心,这是因为没有添加NSIS环境变量,所以将NSIS添加至环境变量可以解决,其中值是NSIS安装路径

    NSIS_DIR
    D:\Program Files (x86)\NSIS
    
    • 1
    • 2

    在这里插入图片描述
    另一种解决方法是将生成的"NSIS-UI-Plugin.dll"文件手动拷贝至"D:\Program Files (x86)\NSIS\Plugins\x86-unicode",并重命名为"nsQtPlugin.dll",如果之前采用的Debug模式则重命名为"nsQtPluginD.dll"

    但是还是建议添加环境变量,因为后面的步骤仍然需要添加NSIS环境变量

    进入"VimeoSetup",编辑"vimeo-template.nsi"文件,各个变量含义如下在这里插入图片描述
    我修改如下,我新建了一个图标,依因此我将突图标换成对应的文件名在这里插入图片描述
    完成后保存,添加NSIS环境变量(如上所示)。双击"build-setup.bat",如果是Debug模式双击"build-setup [debug].bat",可以打开"bat"文件看到运行的命令

    @echo off
    python.exe ..\NsisScriptGenerate.py "%~dp0vimeo-template.nsi" "%~dp0App"
    "%NSIS_DIR%\makensisw.exe" "%~dp0\vimeo.nsi"
    
    PAUSE
    
    • 1
    • 2
    • 3
    • 4
    • 5

    你可能会遇到以下问题,由于原始NsisScriptGenerate.py采用Python2,因此需要做如下修改

    print "file total: " + str(g_extract_file_cmd_total) + ", dir total: " + str(g_create_dir_cmd_total)print("file total: " + str(g_extract_file_cmd_total) + ", dir total: " + str(g_create_dir_cmd_total))
    
    print nsis_script_template_path
    换
    print(nsis_script_template_path)
    
    print  g_root_dir
    换
    print(g_root_dir)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    完成后双击"build-setup.bat",若是Debug模式,双击"build-setup [debug].bat"
    如果没有反应,需要添加Python环境变量(因为".bat"文件会调用系统cmd,因此会检索系统环境变量下的Python,参见Python环境变量添加),或手动使用Python在当前目录执行

    python ../NsisScriptGenerate.py vimeo-template.nsi App
    
    • 1

    来生成"vimeo.nsi"文件,然后再双击"build-setup.bat",若是Debug模式,双击"build-setup [debug].bat"

    完成后得到"CoinFlip-setup.exe"文件
    在这里插入图片描述
    双击打开,会得到以下安装流程

    Python环境变量添加

    环境变量添加如下:
    将Python安装目录添加至环境变量以及Scripts文件夹路径

    如果输入Python总是打开微软应用商店,解决如下:
    在设置中搜索"应用执行别名",将响应快捷禁用即可,完成后在"cmd"中输入"python",出现以下界面则添加成功

  • 相关阅读:
    C# 绘图单位及其关系
    2024.06.05【读书笔记】丨生物信息学与功能基因组学(第十一章 分子水平的系统发生和进化 第一部分)【AI测试版】
    A Mathematical Framework for Transformer Circuits—(三)
    使用 Apache Camel 和 Quarkus 的微服务(三)
    SpringBoot2.6.8 多环境配置
    记阿里云mysql丢表丢数据的实践记录
    Gitee崩了?大量仓库被关闭,官方答复“迫于无奈”
    工作比读研简单多了
    管理数据质量、准确性和一致性的策略
    vue2组件传参方法
  • 原文地址:https://blog.csdn.net/qq_39567427/article/details/125491196