首先,说一下QT生成的EXE在本地打开报错的情况。
第一步:确定QT安装目录是否添加到环境变量,主要有以下两个方面,使用的编译器不同,比如有多个编译器时可以添加多个独立的环境变量,我个人觉得这样比较保险。
第二步:上述环境变量都添加完成了,双击EXE还是报错,问题不大,这个时候已经排除了环境变量的问题,有些依赖的DLL文件没有被加载进来,这个仅靠添加环境变量是不能解决的。要通过windeployqt自动生成DLL文件,例如程序中调用了Opencv库时,直接使用编译器没有任何问题,但是生成的EXE文件无法直接运行,运行时报错如下。
对于这类的错误,首先确定编译EXE时所使用的编译器,例如使用MinGW时,需要打开下面的界面,而不是dos窗口,界面如下
然后通过cd命令,切换到EXE所在的文件夹下面。然后执行下面的命令,耐心等待完成即可
windeployqt name.exe
完成后会得到下面的结果
然后,会发现exe文件夹下面多了很多DLL文件,还有一些文件夹,此时再点击EXE文件,就可以运行了。
解决了上面的问题,下面开始说一下利用打包工具进行打包
打包时需要两个软件,软件的链接我放在这里,需要的可以免费获取 链接:pan.baidu.com/s/13bMgoLsq… 提取码:m4df
这两个文件的安装完成后大概长下面这样
首先,打开HM NIS Edit,界面如下
然后按照下面的步骤进行操作,首先选择“文件”,然后选择“新建脚本:向导(W)”
点击之后,会出现下面的界面,点击下一步即可
然后会弹出下面的界面,应用程序名称,是打包后安装时应用程序的名称,这个自己根据实际情况写,应用程序版本号也是根据自己实际情况写,然后是程序的出版人,以及应用程序的网站。
然后选择一下应用程序的图标,选择安装时语言(SimpChinese),然后继续点击下一步
然后就是手写一个授权文件的txt,内容随意,然后选择路径即可
然后继续下一步
这两个文件跟我们没啥关系,直接删掉即可,然后就是选择我们自己的安装文件所在位置,点击红圈位置
然后点击确定,会出现下面的界面
然后点击下一步,出现下面的界面
然后继续点击下一步
继续下一步,[name]中的name替换为自己程序的名字,主要是在卸载程序时给出的提示中说明要卸载的程序名称。
然后就要大功告成了。。
选择脚本的保存路径和名称后,会自动加载出脚本的代码
接下来就是脚本的编译
编译完成后结果如下
会在目录下生成一个脚本文件,如下所示
同时会生成一个安装文件,如下所示,这个是没有改名字的结果,就叫setup.exe
然后就是测试打包的效果了,双击setup.exe,结果如下
看着样子还不错,是我们预期的结果,与网上安装别人的软件的界面看起来非常相似了。
哦豁,居然我自己写的授权文件的txt加载进来之后居然是乱码,估计是编码问题,懒得再回头复盘一下。
然后就是选择安装位置进行安装
依然是我们熟悉的默认的C盘,然后就是默认安装呗
安装完成之后弹出类似于别人安装完成之后的界面,真不错,希望最后能正常运行起来,哈哈。
然后不取消对勾,点击完成,非常nice,正常运行。整个程序就是一个datetimeedit控件。
运行时任务栏显示
桌面上程序的快捷方式,由于我也没有设置ico的位置,默认图标,所以显示就是这个样子。
然后再看一下安装包的内容,还真不错,直接将我们里面的东西copy了一份,真的是一模一样
下面是QT编译debug包的内容,对比一下,一模一样。
下面再测试一下,看一下卸载是否正常。
首先在控制面板中找到“我的程序”这个软件
然后就是点击卸载,会出现下面的提示,点击是
然后就是卸载成功了
再去看一下“我的程序”安装位置里面还剩下什么
确实没有卸载干净,我们还是自己动手卸载干净吧。
整个软件的打包发布过程就是这些了,如果打包过程中遇到什么问题可以在评论区指出,我会马上修改。
- 我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿。