QT打包遇到问题及解决方法(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文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值