缺少Visual C运行时库

Visual C Run-time libraries missing

本文关键字:运行时 Visual 缺少      更新时间:2023-10-16

我已经为此失眠好几天了:

我正在使用SFML创建一个应用程序,在几天前创建一个新项目之前一切都很好。在那之后,每当我试图编译使用SFML库的解决方案时,我都会遇到链接器错误和丢失的DLL文件。

我环顾四周,发现了一个名为dependencywalker的程序,它可以查看程序依赖于哪些DLL文件。显然,我的程序可执行文件丢失了一些本应在windows目录中的DLL文件。

我有点害怕,然后发现它们都有前缀"CRT"和后缀"nothing"或"D",这意味着它们是Visual C运行时库DLL的。

即使我的电脑没有丢失重要的DLL,我仍然需要解决这个问题。不,在出现问题之前,我的电脑没有重大的硬件/软件更改(我没有防病毒软件,只是相信我的直觉,我已经5年没有出现问题了),是的,我确信我正在按照教程正确设置SFML目录。

我试着为我的VS版本重新安装和修复VS和可再发行的VC(这是windesktop的2012express),试着干净引导,windows自我文件检查(sfc/scannow),还试着手动将DLL放入依赖性助行器说我丢失的目录中。

其他人以前遇到过这种情况吗?你是怎么解决的?

*有趣的是:我可以访问学校网络上的一个管理员帐户,并在那里的计算机上安装VS,看看问题是否会再次出现。由于这些机器上的windows目录从未被修改,VS执行得很好。可能是我需要把窗户安装干净吗?

我不确定OP是否被允许在自己的线程上回答(或者是否有时间限制),但这里是:

我冷静地看了之后,解决了我的问题。我重新检查了我的SFML库的版本,不确定它们是64位还是32位,所以我重新下载了与我的VS版本兼容的32位版本(因为我的调试编译器设置为在32位上运行)。这将我得到的错误从缺少MSVCP140D.dll改为MSVCO120D.dll(数字根据体系结构对应)。

我在谷歌上搜索了一段时间,想知道我需要一个名为MSVCR120D.dll的文件,它在system32中找到,但在SysWoW64中没有。在放置了各自的体系结构DLL文件(64位用于system32,32位用于SysWow64)之后,它终于工作了!

尽管依赖walker仍然表示可执行文件缺少6-7个其他DLL文件,但该项目仍然编译并运行良好。

我希望这不是一个只适用于我的解决方案,我见过很多其他人也有同样的问题。