MSVCP110D.dll and Visual Studio 2013
MSVCP110D.dll and Visual Studio 2013
我正在尝试运行我在Visual Studio 2013中编译的程序。但是,我收到错误
The program can't start because MSVCP110D.dll is missing from
your computer. Try reinstalling the program to fix this problem.
这不是一个非常有用的错误。但是,经过一些谷歌搜索,我发现它(显然)正在尝试动态加载标准c++
库,为了解决这个问题,我需要指定/MT
选项而不是/MD
选项。这给我留下了一些问题:
- 这到底在做什么?
- 与
/MT
相比,/MD
有什么好处?我的意思是,一定有一个原因,它是默认选项...... - 我将如何获得
.dll
的外观并让Visual Studio使用它?我下载了这个,但老实说不知道如何使用它。 - 最重要的是,如何让该错误消失并运行我的程序?
一些附加信息:我正在使用x64
构建在Release
模式下进行编译。
问题是你通过使用使用不同编译器编译的Qt混合了不同版本的Visual Studio。请记住,Visual Studio 的每个版本都有自己的运行时/CRT。使用 Visual Studio 2012 编译的 Qt dll,将依赖于 Visual Studio 2012 运行时。它们不会使用 2013 运行时。
此问题的解决方案是使用相同的编译器重新编译所有代码和依赖库/dll。
警告:一些用户会尝试从其他版本的Visual Studio安装动态运行时(或使用静态CRT重新编译依赖库),但这不是此问题的解决方案,主要是因为每个运行时都有自己的独立堆。拥有单独的堆可以并且将导致随机崩溃,因为在一个堆中分配内存,然后尝试在另一个堆中释放它。由于堆不共享有关分配或解除分配的信息,这会导致堆损坏。根据我的经验,问题并不总是导致即时崩溃。崩溃可能会也可能不会在下一次分配损坏堆时发生,因此调试这种情况可能会非常令人沮丧。
相关文章:
- 将"libpqxx"与Visual Studio 2013链接/安装,以便与PostgrSQL建立C++连接
- Visual Studio 2013,错误 MSB8020:找不到 Visual Studio 2010 的生成工具
- 为什么在Visual Studio 2013上的std::this_thread::sleep_for上死锁
- 性能报告 (.vspx) 在 Visual Studio 2013 中未打开(显示损坏)
- 在 Visual Studio 2013 中使用零大小数组C++
- Visual Studio 2013 标头包含失败
- Visual studio 2013 和 g++ 7.1 中将 int 和 long 类型相乘时的 c++ 差异行为
- 在Visual Studio 2013中编译的STL列表代码在Visual Studio 2019中给出了错误.想知道原
- 错误 LNK2019: 未解析的外部符号 Visual Studio 2013 与 openCV
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- 模块计算机类型和目标计算机类型 Visual Studio 2013
- 如何在Visual Studio 2013 Ultimate Edition中包含某个单词的每一行中插入断点
- 具有显式参数和大小的可变参数模板.Visual Studio 2013.
- 使用 Visual Studio 2013 编译 GDCM dlls 2.8.4 for Windows
- 基本字符串操作有问题 [c++, Visual Studio 2013]
- Visual Studio 2013中可能的C/C 编译器错误
- 在Visual Studio 2013上.Win32 应用和 CLR 应用
- 我正在尝试在Visual Studio 2013中编写我的第一个"Hello World"代码。为什么我会收到"IntelliSense: no operator message"和"error C2
- DLL不导出Visual Studio 2013 VB代码中的字符串
- 我们如何使用Visual Studio 2013访问C 中的更改编号