欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QT打包遇到问题及解决方法

程序员文章站 2022-03-30 22:59:16
...

首先QT新建的文件目录中不能包含中文,否则在编译时会异常退出。
当我们可以成功编译后我们开始进行打包的操作,打包的目的是让一个没有安装QT环境的人也可以打开exe文件。
如果使用debug方式编译文件的话,我们发现源文件目录下多了一个Debug文件夹,里面有两个文件夹,一个是debug,一个是release(其中release包是空的)。来到我们的debug文件夹下可以看到生成了一个exe文件。
点击时可能报错,缺失.dll文件 或者 无法定位程序输入点。一般的解决方式是去找缺失的dll文件,他们都在QT安装目录下的bin文件夹中。下面是我的文件路径,可以参照找到自己的文件所在位置。
QT打包遇到问题及解决方法
将所有缺失的dll文件复制过来后,再次单击,一般情况下可以直接打开exe。

但也可能仍然不行,这时在我的电脑处右键属性,选择高级系统设置,选择环境变量,点击PATH,将自己QT用的bin目录添加到环境变量的最上面。
这么做的原因是你的电脑可能以前装过和QT使用的编译器相同的编译器,导致QT在调用编译器时调用错误,将QT的变量移到最上面就可以解决这个问题。
QT打包遇到问题及解决方法
QT打包遇到问题及解决方法
QT打包遇到问题及解决方法
QT打包遇到问题及解决方法
这样打包的问题基本就解决了,但我们发现打包的文件太大了。因为debug版本一般是自己调试用的版本,发布时一般用release版本打包。我们回到QT,用Release方式重新编译一遍文件,发现源文件目录下生成一个Release文件夹,在其子文件夹release里找到exe文件。
这时有两个选择:
1.和之前一样一个个找dll文件移过来。
2.使用安装QT时自带的windeployqt命令,先将exe放到一个新文件夹中,然后使用命令行进入文件夹目录下,并输入以下命令,xxx为exe名。

windeployqt xxx.exe

QT打包遇到问题及解决方法
之后系统就会自动寻找所需文件并打包exe。打包完成后可以直接双击exe运行。

如果此时仍报错无法运行,可能是你装了两个版本的QT,而QT用了另一个版本的windeployqt打包了你的文件,这时可以对照着打包出来的dll文件跑到自己正确的QT的bin目录下复制并替换原先文件夹中的dll文件。

相关标签: qt exe