概述
首先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文件。
最后
以上就是暴躁钥匙为你收集整理的QT打包遇到问题及解决方法(QT系列番外)的全部内容,希望文章能够帮你解决QT打包遇到问题及解决方法(QT系列番外)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复