Visual Studio 2015 使用较旧的 dll 进行调试

Posted

技术标签:

【中文标题】Visual Studio 2015 使用较旧的 dll 进行调试【英文标题】:Visual studio 2015 debugging with older dlls 【发布时间】:2015-10-26 21:29:22 【问题描述】:

我正在尝试在 Windows 10 - Visual Studio 2015 下从 OpenCV 调试 sample application。

我已经根据 OpenCV wiki 配置了 Visual Studio,我可以编译应用程序并正常运行。

我遇到的问题是当我尝试调试应用程序时。我知道该程序无法启动,因为缺少MSVCP120D.dll。我已经安装了来自 Microsoft 的 Visual C++ 2013 可再发行组件,但是它们没有附带调试 dll。

问题可能源于我使用的 OpenCV 版本 (D:\opencv\opencv\build\x64\vc12) 是用 2013 年编译的。有没有办法获得这个 dll 的调试器版本?或者没有它就启动调试器?还是我不得不用 2015 重新编译 OpenCV?

谢谢。

【问题讨论】:

在您的项目设置中,您可以选择使用的编译器。选择vc120。但如果 Visual Studio 2015 未提供编译器,您可能需要先安装编译器 【参考方案1】:

还是我不得不用 2015 重新编译 OpenCV?

您可能是因为混合不同的运行时 dll 是一个非常糟糕的主意。在您的情况下,您将编译的程序(MSVC 2015)与 OpenCV dll(MSVC 2013)混合。

您应该执行以下任一操作:

    使用 MVSC 2013 编译您的程序,我相信这需要您在计算机上安装 MSVC 2013 使用 MSVC 2015 编译 OpenCV。

注意:使用 MSVC 2015 和更高版本的编译器编译的程序可能会更好,因为 Universal CRT

【讨论】:

以上是关于Visual Studio 2015 使用较旧的 dll 进行调试的主要内容,如果未能解决你的问题,请参考以下文章

将较新的 Visual Studio 版本与较旧的 MFC 版本一起使用?

在 Visual Studio 2017 中使用 3D Wavefront OBJ / STL

Microsoft Visual Studio 更改默认主题

参考 DLL 未在 Visual Studio 2010 中加载

visual studio 2015怎样升级

Visual Studio 认为我没有安装 Hyperv。为啥?