由于MSVCR100D.dll缺失,无法在调试模式下编译解决方案

Pro*_*123 9 c++ debugging compiler-errors visual-studio-2012

我在带有Windows 8的64位计算机上运行Microsoft Visual Studio Express 2012 for Windows Desktop.

我创建了一个全新的Win32控制台应用程序(在C++中)并接受默认选项.然后,我在调试和发布模式下构建并运行解决方案,它可以运行所有查找和花花公子.接下来,我为动态 SFML库配置include和library目录.我链接到调试和发布.lib文件,并将调试和发布.dll文件放在正确的目录中.然后我添加了一些使用库的简单代码,在调试模式下构建和运行应用程序,我得到了这个错误:" The program can't start because MSVCR100D.dll is missing from your computer. Try reinstalling the program to fix this problem."如果我在发布模式下构建并运行应用程序,它可以正常工作,没有错误.(是的,我有redistributables安装了32位和64位.)现在根据我的理解,根据这个线程,.dll文件仅用于调试,并且不包含在可再发行组件包中(这可以解释为什么它不起作用)在调试模式下).答案是开发人员默认使用visual studio安装它.这显然不是错误的证据,我重新安装了visual studio并重新启动了我的计算机两次.

总之,如何在调试模式下编译我的解决方案而不会出现此错误?

我担心有人会将此标记为副本,所以我们开始:

  1. 链接 - "......您似乎链接到运行时的调试版本,分发与运行时调试版本链接的应用程序是不正常的."

    不属于我,因为我没有分发这个应用程序,只是尝试在调试模式下运行它.

  2. 链接 - "我使用Microsoft visual c ++ 2010 Express Edition编译了我的程序,并尝试在另一台没有相同编译器的机器上运行它."

    当他在另一台计算机上运行他编译的内容时,这个人会得到错误,而不是在实际编译应用程序时.

  3. 链接 - "如果您的发布版本出现此错误......"

    我不.

  4. 链接 - "您可以在"发布"中编译您的项目..."

    我的项目还没有准备好发布,因此我应该在调试模式下编译我的项目.

And*_*ita 2

MSVCR100D.dll 是 Visual Studio 10 的 dll,因此某些地方依赖于它(SFML dll?)。无论您使用 Visual Studio 2012 编译(在调试模式下)什么内容,都将需要 MSVCR110D.dll,您应该在安装过程中将其安装在您的计算机上。

我建议您在自己的 Visual Studio 版本上自行构建 SFML,这非常简单。事实上,作为 SFML 2.0 RC 一部分的网站上提供的二进制文件相当旧,从最新源构建会对您自己大有帮助,因为同时应用了许多修复和改进。

(另外,一定要使用 2.0 而不是 1.6。该网站相当具有误导性,但在 SFML 论坛上,几乎每个人都会建议您使用最新版本)