QT打包遇到问题及解决方法
首先QT新建的文件目录中不能包含中文,否则在编译时会异常退出。
当我们可以成功编译后我们开始进行打包的操作,打包的目的是让一个没有安装QT环境的人也可以打开exe文件。
如果使用debug方式编译文件的话,我们发现源文件目录下多了一个Debug文件夹,里面有两个文件夹,一个是debug,一个是release(其中release包是空的)。来到我们的debug文件夹下可以看到生成了一个exe文件。
点击时可能报错,缺失.dll文件 或者 无法定位程序输入点。一般的解决方式是去找缺失的dll文件,他们都在QT安装目录下的bin文件夹中。下面是我的文件路径,可以参照找到自己的文件所在位置。
将所有缺失的dll文件复制过来后,再次单击,一般情况下可以直接打开exe。
但也可能仍然不行,这时在我的电脑处右键属性,选择高级系统设置,选择环境变量,点击PATH,将自己QT用的bin目录添加到环境变量的最上面。
这么做的原因是你的电脑可能以前装过和QT使用的编译器相同的编译器,导致QT在调用编译器时调用错误,将QT的变量移到最上面就可以解决这个问题。
这样打包的问题基本就解决了,但我们发现打包的文件太大了。因为debug版本一般是自己调试用的版本,发布时一般用release版本打包。我们回到QT,用Release方式重新编译一遍文件,发现源文件目录下生成一个Release文件夹,在其子文件夹release里找到exe文件。
这时有两个选择:
1.和之前一样一个个找dll文件移过来。
2.使用安装QT时自带的windeployqt命令,先将exe放到一个新文件夹中,然后使用命令行进入文件夹目录下,并输入以下命令,xxx为exe名。
windeployqt xxx.exe
之后系统就会自动寻找所需文件并打包exe。打包完成后可以直接双击exe运行。
如果此时仍报错无法运行,可能是你装了两个版本的QT,而QT用了另一个版本的windeployqt打包了你的文件,这时可以对照着打包出来的dll文件跑到自己正确的QT的bin目录下复制并替换原先文件夹中的dll文件。
推荐阅读
-
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
-
电脑提示"你的电脑遇到问题"错误的故障原因及解决方法
-
Win10系统无法开机提示您的电脑遇到问题需要重新启动的原因及解决方法
-
STM8 ADC多通道采样遇到问题及解决方法
-
eclipse中的出现在打包一次后,后面新建的项目都出错了,出现support_v7下面出现红线及解决方法及为什么eclipse中项目继承ActionBarActivity解决方法一样
-
ant自动化打包新浪jar崩溃问题及解决方法
-
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
-
QT5 Designer 打不开的问题及解决方法
-
.NET发送邮件遇到问题及解决方法
-
qt 旧项目编译运行提示 “启动程序失败,路径或者权限错误?” 原因及解决方法