我已经在这几天失眠了:
我使用SFML创建应用程序,一切都很顺利,直到我几天前创建了一个新项目。之后,每当我尝试编译使用SFML库的解决方案时,我都会遇到链接器错误并丢失DLL文件。
我环顾四周,发现了一个名为dependency walker的程序,它查看程序所依赖的DLL文件。显然我的程序可执行文件丢失了一些原本应该在windows目录中的DLL文件。
我发现他们都有前缀" CRT"我吓坏了一点。并且没有任何后缀或" D"这意味着它们是Visual C运行时库DLL。
即使我没有错过PC上重要的DLL,我仍然需要解决这个问题。在问题出现之前,没有对我的电脑进行重大硬件/软件更改(我没有防病毒软件,只相信我的胆量,我现在已经有5年没有问题了)是的我是&# 39;我确定我在tutorial之后正确设置了SFML目录。
我已经尝试重新安装和修复VS和可再发行的VC用于我的VS版本(2012年表示为win桌面版),尝试干净启动,windows自我文件检查(sfc / scannow)并且还尝试手动将DLL放入我的目录中,依赖者walker说我失踪了。
之前还有其他人遇到过这个吗?你是怎么解决的?
*有趣的说明:我可以访问学校网络上的管理员帐户,并在那里的计算机上安装VS,以查看是否会再次出现问题。由于这些机器上的Windows目录永远不会被修改VS执行正常。可能是我需要一个干净的窗户安装?
答案 0 :(得分:0)
我不确定是否允许OP在他自己的线程上回答(或者如果有时间限制),但是这里有:
我用冷静的头脑看着它解决了我的问题。我重新检查了我的SFML库的版本,并且不确定它们是64位还是32位,所以我重新下载了兼容的32位版本(因为我的调试编译器设置为32位运行)与我的VS版本。这将我从错过的MSVCP140D.dll错误更改为MSVCO120D.dll(数字根据架构对应)。
我用谷歌搜索/询问了一段时间以找出我需要一个名为MSVCR120D.dll的文件,该文件在system32中找到但在SysWoW64中找不到。放置相应的体系结构DLL文件(system32为64位,SysWow64为32位)后,它终于有效了!
即使依赖者walker仍然说可执行文件缺少6-7个其他DLL文件,该项目仍然可以编译并运行正常。
我希望这不是一个只适用于我的解决方案,我见过很多其他同样问题的人。