当前位置:   article > 正文

Visual Studio配置Qt并通过NSIS实现项目打包_如何编译nsis源代码

如何编译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",出现以下界面则添加成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/112662
推荐阅读
相关标签
  

闽ICP备14008679号