简 述:记录一个新建空项目,在MSVC 中,Debug编译成功,运行失败;但 Release编译和运行均成功的场景解决;毕竟不能够调试很痛苦。
文章目录
背景问题解决总结本文初发于 “偕臧的小站”,同步转载于此。
背景
初,写的 CMake 项目转换为 VS 解决方案,打开 .sln 后,在 Debug 模式下编译成功,运行失败且报错;但 Release 下编译和运行成功。困惑一月有余。💻 为win10 21H1
📎Visual Studio
昨,忽然想在 VS 创建一个空的 C++ 程序,发现同样情况。那就是 VS 的锅了。坑坑坑!!!
问题
在 debug 编译成功后,运行失败则会报错如下:由于找不到 VCRUNTIME140D.dll,无法继续执行代码。重新安装程序可能会解决此问题。
解决
依次尝试过以下解决方案,最终是第二步和第三步解决的。
下载VCRUNTIME140D.dll
拷贝到C:\Windows\System32
、C:\Windows\SysWOW64
后,虽然不再报此错,但是报其他错,且无有效提示信息。 遂删除拷贝的 .dll 作罢。
尝试网上最多解决教程为下载 Visual C++ Redistributable for Visual Studio ,当 x86 和 x64 都安装后,依旧无效;再后来想到难道是支持到 VS ,而我是 VS ,遂卸载旧的,下载更新的版本重新安装,依旧无效。事后在暴雨中哭泣。
PS:Redistributable 实际是支持到 - 的,理论是完全没问题的。后来还是改为下载一个更新的 - 都支持的
Visual C++ Redistributable for Visual Studio :Microsoft Visual C++ - Redistributable Redistributable -:Microsoft Visual C++ - Redistributable
控制面板打开Visual Studio Installer
右键修复;选择修改,在界面默认只选择 “使用 C++ 的桌面开发” 和 “使用 C++ 的 Linux 开发” 的两个默认的勾,不额外勾选其它,一切皆默认即可。
点击右下 “关闭” 后返回上一层,在 “更多-修复-确定” 等待重置环境即可。当成功之后,重启电脑,发现此问题被解决。
总结
这会事后,搜了下会存放的路径,放一个运行没问题的环境图提供后来者对照参考。当基本确定是 MSVC 的环境问题后,试试 VS 的修复重新安装。或许会有惊喜,可能是一个很挫但是有效的方案。