Qt在windepolyqt配置dll缺失MSVCP与VCRUNTIME的情况下如何打包exe

在常规情况下,我们可以在Qt命令行中先转到要打包的exe的路径,再键入指令windepolyqt xxx.exe直接进行打包,但是笔者使用这种方法并没有成功,而是提示缺少MSVCP140.dll与VCRUNTIME140.dllQt命令行文件
笔者尝试将exe直接放入Qt的bin目录中,发现可以成功运行,一番尝试后发现保留如下几个dll就可让程序正常打开
在这里插入图片描述
所以我们只需在Qt的bin目录中找到这几个dll,放入要打包的文件夹即可,下图为笔者的bin目录路径
在这里插入图片描述

通过比对发现,windepolyqt指令生成的是QtCore.dll,QtGui.dll等,而bin目录中为Qt5Core.dll,可能这就是问题所在

当我们在使用VS编译程序时,可能会遇到缺失msvcp140d.dllvcruntime140d.dll和ucrtbased.dll情况。这些DLL文件是Microsoft Visual C++ Redistributable所需要的运行库文件,缺少它们会导致程序无法正常运行。 解决这个问题有以下几种方法: 1. 安装Microsoft Visual C++ Redistributable包:首先,我们可以尝试安装或重新安装最新版本的Microsoft Visual C++ Redistributable包。我们可以在Microsoft官方网站上下载适合我们操作系统的对应版本的运行库,然后进行安装。 2. 检查编译选项:另一种方法是检查我们的编译选项是否正确配置。在VS中,我们可以通过以下步骤进行检查和更改:打开项目属性→配置属性→C/C++→代码生成→运行库,并选择合适的运行库选项(如使用动态(DLL)选项)。然后重新编译项目。 3. 复制DLL文件:如果上述方法无效,我们可以尝试手动复制缺失DLL文件到系统中。首先,我们需要从可运行的电脑或者其他程序所在的文件夹中找到这些DLL文件。然后,将这些DLL文件复制到缺失的程序所在的文件夹中,或者复制到Windows的System32文件夹。最后,重新运行程序。 总之,缺失msvcp140d.dllvcruntime140d.dll和ucrtbased.dll情况是由于缺少Microsoft Visual C++ Redistributable的运行库文件所致。我们可以通过安装这个运行库包、检查编译选项或手动复制缺失DLL文件等方法解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值