Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

这篇具有很好参考价值的文章主要介绍了Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关键字

Remember to call vcvarsall.bat to complete environment setup!

Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set.

Qt 找不到 msvcp140.dll, msvcp140d.dll, vcruntime140.dll, vcruntime140d.dll, ucrtbased.dll

问题分析

当你用MSVC编译器编写的程序,在使用Qt的打包工具windeployqt.exe时,在终端第二行会看到 “Remember to call vcvarsall.bat to complete environment setup!” 字符串;在打包过程中还会遇到 “Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set.”

大部分人可能没在意,也觉得无关紧要。但是,在你的电脑上没问题,并不代表别人的电脑就正常。比如在运行程序时会遇到找不到 VCRUNTIME140_1.dll找不到msvcp140.dll ,ucrtbased.dll等等VC库情况。

Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

MSVC编译器编写的程序就会遇到以上VC运行库缺失的问题。

也就是说,在打包的过程中,只是把Qt的相关动态库部署好了,但是VS (或者VC)的运行环境并没有部署。

所以为了杜绝隐患,应该重视这两个警告。那么如何解决呢

解决方案

目前探索了很多种解决方案,供大家参考。至于,手动拷贝缺失的动态库也可以解决问题,但不够优雅,或者太low。

方案一

这种方法最省事,一次设置,后续都能用。解决方案就是添加一个VS的环境变量。

首先,找到VS的安装目录,比如我的是默认安装在C盘。复制路径C:\Program Files\Microsoft Visual Studio\2022\Community\VC

打开环境变量,添加一个系统变量,变量名为VCINSTALLDIR,变量值为C:\Program Files\Microsoft Visual Studio\2022\Community\VC
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

然后重新打开Qt的命令行,执行

windeployqt E:\Code\CppProject\QtWidgetsApplication1\x64\QtWidgetsApplication1.exe

可以看到,这下没有Warning: Cannot find Visual Studio installation directory, VCINSTALLDIR is not set.警告了,同时,输出里增加了一些VC的动态库。这就说明,我们打包的同时,已经把VC的环境带上了。
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

方案二

不想加入环境变量怎么办,也可以做到。但稍微有点繁琐。

首先搜索一下 vcvarsall.bat的路径,我的路径是C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

然后,打开Qt的命令行配置环境,输入

call "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat"

Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案
可以看到报错了,原因是我们没选择对应x86,x64位数。在尾部根据自己编译的位数加上即可:

call "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat" x64

Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案
这时,就显示已经初始化的x64的环境。

然后再执行打包命令即可,可以看到跟方案一结果一致。
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

方案三

还可以使用VS的命令行进行打包,打开VS的命令行会自动配置好VS的环境,就不需要我们手动配置了。然后调用windeployqt.exe去打包就行了。

根据版本去打开对应的VS命令行,比如我这里编写的程序是x64位,那我就打开x64 Native Tools Command Prompt
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案
可以看到,已经自动设置好了VS x64的环境。那么接下来调用对应版本的windeployqt程序进行打包。

D:\Qt\5.15.2\msvc2019_64\bin\windeployqt.exe E:\Code\CppProject\QtWidgetsApplication1\x64\QtWidgetsApplication1.exe

Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案

方案四

最后一个办法,那就是自己不处理,交给用户处理。如果遇到这个问题,就安装vc运行库,下载对应版本安装即可。
Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案
Microsoft C 和 C++ (MSVC) 运行时库下载地址:
https://docs.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170

问题

可能有些人按照此方法打包出来,只有一个vc_redist64.exe,没有对应的动态库。
原因可能有 Qt 版本的不同导致差异性。另外,使用MinGW编译器。本文的前提是 MSVC 编译器

如果按照上述方法,你还是无法得到对应的动态库,可加 --compiler-runtime参数进行尝试。
即:

D:\Qt\5.15.2\msvc2019_64\bin\windeployqt.exe --compiler-runtime E:\Code\CppProject\QtWidgetsApplication1\x64\QtWidgetsApplication1.exe

总结

以上就是我总结的四种解决方案,都可以解决VC运行环境的问题。文章来源地址https://www.toymoban.com/news/detail-436795.html

到了这里,关于Qt 打包发布程序,解决找不到msvcp140.dll等动态库问题正确方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 找不到msvcp140.dll无法继续执行代码,怎么解决?

    MSVCP140.dll是一个Windows操作系统中的动态链接库文件,它是Microsoft Visual C++ Redistributable for Visual Studio 2015的一部分。这些库提供了一些C++程序所需的基本功能,例如内存管理、文件操作、字符串处理等等。丢失或者损坏会导致很多软件跟游戏无法打开运行,小编今天就把解决方

    2024年02月10日
    浏览(80)
  • 找不到msvcp140.dll无法继续执行代码,要怎么去解决?

    很多人咨询小编,说他在使用电脑的过程中经常会遇到找不到msvcp140.dll无法继续执行代码,他一脸懵逼不知道如何进行解决,其实这个是我们电脑中的组件运行库丢失所导致的。要解决这个问题也不难,下面我们一起来看看。 【dll文件常见问题】 找不到msvcp140.dll无法继续执

    2024年02月01日
    浏览(47)
  • 出现找不到msvcp140.dll无法继续执行代码要怎么解决?

    出现找不到msvcp140.dll无法继续执行代码要怎么解决?当你尝试在Windows系统上运行某些程序或游戏时,可能会遇到“找不到msvcp140.dll无法继续执行代码”的错误提示。这个错误通常表示你的系统缺少了msvcp140.dll文件,而这个文件是Visual C++ Redistributable的一部分。在本文中,我们

    2024年02月15日
    浏览(45)
  • 由于找不到msvcp140.dll文件,我们要怎么解决这种情况?

    在使用电脑的过程中,我们经常会遇到各种各样的问题,其中之一就是缺少msvcp140.dll文件。这个问题通常会导致某些软件无法正常运行,而且很多人对于如何解决这个问题并不是很清楚。本文将会介绍多种修复方法,并对比哪种方法比较方便。 一.什么是msvcp140.dll msvcp140.dll是

    2024年02月10日
    浏览(52)
  • 轻松解决:由于找不到MSVCP140D.dll,无法继续执行代码

    出现由于找不到MSVCP140D.dll、VCRUNTIME140D.dll、ucrtbased.dll等文件丢失,无法继续执行代码,其实是缺少了Microsoft C 和 C++ (MSVC) 运行库    可以去微软的官网下载安装包,根据电脑选择对应的安装包,x64是64位电脑,x86是32位电脑。也可以全部安装。 最新支持的可视C++可再发行组

    2024年02月10日
    浏览(59)
  • 解决Win找不到msvcp140_codecvt_ids.dll

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个msvcp140_codecvt_ids.dll文件进行安装(前提是找到适合的版本),当

    2024年02月04日
    浏览(89)
  • cad2020找不到MSVCP140.dll怎么办,msvcp140.dll无法继续执行代码

    之前都是用cad2018版本,今天早上想着换个新一点的cad版本,就下载安装cad2020版本。打开的时候就提示由于找不到MSVCP140.dll,无法继续执行此代码,这可怎么办,经过一上午的研究,现在终于知道什么是MSVCP140.dll文件以及如何修复,现在就把一个简单方法分享推荐给大家;

    2024年02月07日
    浏览(53)
  • 电脑显示找不到msvcp140.dll怎么修复?

    建议先在电脑设置中找到 应用 选项,查看是否有 Microsoft Visual C++ 2015 版本或者以上版本的此应用 ; 如果 没有 直接 方法二 ,如果 有 就直接 方法三 ; 直接 方法二不行 就再 操作一下方法三 ; 如果 都解决不了再操作方法一 ; 手动下载msvcp140.dll文件 ,然后将文件复制到

    2024年02月06日
    浏览(43)
  • 解决因缺少msvcp140_2.dll无法启动程序问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个msvcp140_2.dll文件进行安装(前提是找到适合的版本),当我们执行

    2024年02月08日
    浏览(43)
  • 电脑提示msvcp140.dll丢失的解决方法,msvcp140.dll丢失修复教程

    msvcp140.dll是Microsoft Visual C++ Redistributable所需的一个动态链接库文件,它包含了Visual C++运行库中的一些函数和类库。这个文件通常出现在Windows操作系统中,用于支持使用Visual C++编写的程序的正常运行。如果系统缺少或损坏了这个文件,可能会导致某些程序无法运行,或者出现

    2024年02月03日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包