关于 vcredist 与 Qt 程序部署:你该知道的一切
以下是根据我们的对话整理的技术博客文档采用 Markdown 格式兼顾技术深度与阅读体验适合存档或分享。关于 vcredist 与 Qt 程序部署你该知道的一切当软件提示“缺少 MSVCP140.dll”时不是系统坏了而是少了一个“电源适配器”。在日常开发或使用 Windows 软件的过程中很多人甚至包括不少开发者都曾被“缺少xxx.dll”的错误提示困扰过。这篇文章记录了我与一位开发者关于vcredist、DLL 缺失以及Qt 程序部署的完整问答过程希望能帮你彻底搞懂这一系列问题。一、vcredist 到底是什么vcredist是Microsoft Visual C Redistributable的简称。你可以把它理解为 Windows 上 C 程序的“底层运行环境”。很多软件游戏、驱动工具、设计软件都不是“凭空运行”的它们依赖一些微软提供的公共库文件。一个类比软件 一台游戏机vcredist 游戏机的电源线或电池缺少它 → 无法开机程序无法运行什么时候需要它安装某些游戏或软件时安装程序会自动安装对应版本的 vcredist运行软件时出现“缺少 MSVCP***.dll”之类的错误需要手动安装作为开发者你发布 C 或 Qt 程序时需要确保目标环境已安装二、常见错误与对应版本速查表缺失的 DLL 文件对应的 vcredist 版本Visual Studio 版本MSVCP120.dllVisual C 2013VS 2013MSVCP140.dllVisual C 2015–2022VS 2015 / 2017 / 2019 / 2022MSVCP140.dll从 VS 2015 开始一直沿用并保持兼容一个“2015–2022 Redistributable”就能覆盖后面所有版本。三、vcredist 应该如何选择选择逻辑由易到难看错误提示中的数字缺少120→ 装 2013 版缺少140→ 装 2015–2022 版。看系统位数32 位系统只能装 x8664 位系统建议x86 和 x64 都装很多 32 位程序也需要 32 位运行库终极偷懒法去微软官网搜索“The latest supported Visual C downloads”把 2005 到 2022 的所有版本x86/x64全部装一遍。它们之间不会冲突且能覆盖 99% 的缺失问题。官方下载链接版本官方链接VC 2013https://www.microsoft.com/zh-cn/download/details.aspx?id40784VC 2015–2022https://aka.ms/vs/17/release/vc_redist.x64.exe四、我打包的 Qt 程序在别人电脑上报“缺少 DLL”怎么办这是一个非常经典的问题尤其对于刚接触 Qt 部署的开发者。根本原因你的 Qt 程序用 MSVC 编译需要两套支撑系统Qt 自己的库Qt5Core.dll、Qt5Widgets.dll等微软 C 运行库MSVCP140.dll、VCRUNTIME140.dll等你在别人电脑上只复制了 Qt 的 DLL但忘了带微软的那一套。解决方案三选一推荐度从高到低✅ 方案一在目标电脑安装 vcredist最标准把对应的 VC Redistributable 安装包发给对方让他以管理员身份运行。优点符合规范有安全更新一劳永逸缺点需要对方有管理员权限✅ 方案二直接复制 DLL 到 exe 目录免安装从你的开发环境中找到以下文件复制到 exe 同级目录msvcp140.dllvcruntime140.dllvcruntime140_1.dll 如果用了较新的 C 特性concrt140.dll 如果用了并发库优点无需安装适合无管理员权限环境缺点每个程序都要带一份占用空间✅ 方案三使用 Qt 自带的windeployqt工具在你打包时执行windeployqt.exe your_program_name.exe这个工具会自动分析你的程序并把缺少的 Qt DLL 和部分 VC DLL 复制过来。⚠️ 注意windeployqt有时不会复制全部 VC 运行库文件建议执行完后再按方案二手动检查一遍。建议还是使用方案一五、懒人福音有ALL IN ONE 包而且非常推荐给普通用户或不想折腾的人。下载运行安装包等待全部装完重启电脑即可通过网盘分享的文件VisualCppRedist_AIO_x86_x64.exe 链接: https://pan.baidu.com/s/15y2wsI_GZrgqcDN_kKQmsg?pwdf3qc 提取码: f3qc 复制这段内容后打开百度网盘手机App操作更方便哦微软运行库合集覆盖版本VC 2005 / 2008 / 2010 / 2012 / 2013 / 2015–2022同时包含x86 x64作用一次性解决所有“缺少 xxx.dll”的问题如何使用搜索关键词“微软运行库合集”或“DirectX修复工具”建议从腾讯云、阿里云开发者社区或正规软件站下载避免来历不明的“高速下载器”以管理员身份运行点“下一步”即可安装完成后重启电脑合集包里的所有组件都来自微软官方和你手动一个一个装的效果完全一样不会对系统造成伤害。六、如何自己找到最新的官方下载链接授人以渔不如授人以渔。记住微软官方的这个发布页面以后直接去这里找最新链接 https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist页面上会列出从 2015 年到当前所有受支持的 VC Redistributable 版本。七、写在最后DLL 缺失不是“系统坏了”也不是“中毒了”它只是一个再普通不过的环境依赖问题。如果你是普通用户装一个运行库合集一劳永逸如果你是开发者发布程序时记得把 VC 运行库一起带上或者在说明里提醒用户安装希望这篇文章能帮你节省未来排查此类问题的时间。如果还有其他疑问欢迎继续交流。参考https://juejin.cn/post/7626273552454582318