我正在尝试在VS2012中设置我的项目以成功编译并运行OSG代码以进行调试。我也在使用OSG调试库。编译和链接成功结束但在运行二进制文件后,我收到一条错误消息,指出MSVCR120D.dll
缺失。
我一整天都在寻找这个错误的解决方案,这对我来说没有意义,因为我使用的VS2012应该使用MSVCR110D.dll
。我也没有这个dll
C:\Windows\System32
,只有MSVCR120.dll
及其旧版本。
如果我尝试使用非调试 osg库在发布模式下编译项目,一切都很好,我可以正常运行项目而不会出错。
参考this问题,我尝试使用MFC
和Runtime 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;
}
以下是导致错误的项目设置的屏幕截图:
答案 0 :(得分:11)
您使用的库中至少有一个是使用VC12(2013)编译的,因此要么重新编译它们(您可能会看到使用Dependency Walker在VC12上编译哪个库,或者安装MSVC 2013可再发行组件{{3} }