VS2012 MSVCR120D.dll丢失

Kal*_*lam 13 c++ dll openscenegraph visual-studio-2012

我正在尝试在VS2012中设置我的项目,以成功编译并运行OSG代码进行调试.我也在使用OSG调试库.编译和链接成功结束但在运行二进制文件后,我收到一条错误消息,说明MSVCR120D.dll缺少.

我一整天都在寻找这个错误的解决方案,这对我来说没有意义,因为我正在使用应该使用的VS2012 MSVCR110D.dll.我也没有这个dll C:\Windows\System32,只有MSVCR120.dll它的旧版本.

如果我尝试使用非调试的 osg库在发布模式下编译项目,一切都很好,我可以正常运行项目而不会出错.

参考这个问题,我试图使用MFCRuntime Library设置,但只有发布库工作.

我需要使用调试库运行它,因为我想使用不适用于发行库的Visual Leak Detector.这是我正在使用的代码的一部分(OSG库使用相同的VS2012编译).

#include "stdafx.h"
#include <windows.h>

// osg libs
#include <osgViewer/Viewer>

int main(int argc, char **argv) {
  osgViewer::Viewer viewer;
  while (!viewer.done()) {
    viewer.frame();
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

以下是导致错误的项目设置的屏幕截图:

项目 C/C++代码生成子菜单的常规设置

Bru*_*ira 13

您使用的库中至少有一个是使用VC12(2013)编译的,因此要么重新编译它们(您可以使用Dependency Walker查看在VC12上编译的库,或者从此处安装MSVC 2013可再发行组件的下载)

  • "D"代表调试信息,因此必须编译其中一个库以便在VS2013上进行调试. (9认同)
  • MSVC2013不添加`MSVCR120D.dll`,而只添加名称中没有"D"的lib.我会尝试Dependency Walker,我们会看到......当我为Hans感到难过时,我正在使用我自己编译的OSG库,使用相同的VS2012 ... (5认同)