Visual Studio 2013 MSVCR110d.dll 缺失

Visual Studio 2013 MSVCR110d.dll 缺失

我不太确定这是否属于 SuperUser 或 StackOverflow,但它似乎不是一个编码问题,所以我将使用它。

我已经开始使用 Visual Studio 2013 开发一款 C++ 游戏,其中使用了 FreeGLUT 和 FreeImage。我可以在我的台式机上编译并运行它,没有任何问题,但当我尝试在笔记本电脑上编译相同的代码时,我得到了错误“msvcr110d您的计算机缺少 .dll。”此后,Visual Studio 有大约 50% 的可能性会冻结,并且我被迫重新启动计算机,因为任务管理器无法停止该进程(这是我仍在努力解决的另一个问题)。

谷歌搜索告诉我要安装 Visual C++ Redistributable 2012,但这台笔记本电脑上已经安装了它(x86 和 x64),并且正在重新安装(从http://www.microsoft.com/en-us/download/details.aspx?id=30679) 完全没有帮助。我还尝试安装 Visual C++ Redistributable 2013 (x86 & x64,来自http://www.microsoft.com/en-us/download/details.aspx?id=40784),但无济于事。这两个链接都提供了 ARM 下载。我不确定那是什么,尝试安装它时会弹出一个窗口,提示我无法在此版本的 Windows(即 Windows 8)上安装它,所以我认为我不需要它。

查看 C:\Windows\SysWow64 文件夹,我可以看到 msvcr110.dll,但看不到 msvcr110d.dll。看起来好像安装了发布版本,但没有安装调试版本。我确实看到了 msvcr120d.dll,应该是 2013 版吧?那么 Visual Studio 2013 不应该使用该版本,而不是 msvcr110d.dll?

运行标准 C++ HelloWorld 项目不会出现此问题,因此我猜想这一定与 FreeGLUT 或 FreeImage 有关。但是它在我的桌面上编译并运行没有问题,因此我相信所有内容都已正确编码和链接。我添加了包含目录、库目录(两者都是调试的),并添加了 opengl32.lib 和 FreeImaged.lib 作为附加依赖项。

安装 Visual C++ Redistributable 并没有帮助,那么还有其他方法可以解决这个问题吗?Visual Studio 2013 是否应该使用 msvcr110d.dll,还是应该使用 msvcr120d.dll?我需要从 MSVCR 下载页面安装 ARM 吗?我使用的是 Windows 8 64 位(也是全新的笔记本电脑,所以我认为没有任何损坏问题)。提前感谢您的帮助。

道格

答案1

运行标准 C++ HelloWorld 项目不会出现此问题,因此我想这一定与 FreeGLUT 或 FreeImage 有关。

我认为您说的没错。听起来 FreeGLUT 或 FreeImage 是在调试模式下编译的,这就是为什么要求使用“D”版本。请确保使用依赖项的发布编译。

答案2

如果您尝试进行远程调试(或可能在其他情况下),则可能需要将运行时库设置从多线程调试 DLL(/MDd)->多线程调试(/MTd)更改。

您可以通过右键单击您的项目,选择Properties-> C++->Code Generation然后下拉选项Runtime Library,并将其修改为其中没有“DLL”的设置之一来实现此目的(在 VS2012 中)(根据您是否想要调试模式或发布模式生成来选择您的设置)。

希望这可以帮助。

相关内容