gpt4 book ai didi

c++ - MSVCP110D.dll 和 Visual Studio 2013

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:45 26 4
gpt4 key购买 nike

我正在尝试运行我在 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 选项。这给我留下了一些问题:

  1. 它到底在做什么?
  2. /MD/MT 相比有什么好处?我的意思是,它是默认选项肯定是有原因的...
  3. 我将如何着手寻找 .dll 并让 Visual Studio 使用它?我下载了this ,但老实说不知道如何使用它。
  4. 最重要的是,如何消除该错误并运行我的程序?

一些附加信息:我正在使用 x64 构建在 Release 模式下进行编译。

最佳答案

问题是您使用使用不同编译器编译的 Qt 来混合不同版本的 Visual Studio。请记住,每个版本的 Visual Studio 都有自己的运行时/CRT。使用 Visual Studio 2012 编译的 Qt dll 将依赖于 Visual Studio 2012 运行时。他们不会使用 2013 运行时。

此问题的解决方案是使用相同的编译器重新编译所有代码和依赖库/dll。

警告:有些用户会尝试从其他版本的 Visual Studio 安装动态运行时(或使用静态 CRT 重新编译依赖库),但这不是解决此问题的方法,主要是因为每个运行时都有自己独立的堆。具有单独的堆可能并且将会导致随机崩溃,这是由于在一个堆中分配内存然后尝试在不同的堆中释放它而引起的。由于堆不共享有关分配或释放的信息,这会导致堆损坏。根据我的经验,这个问题并不总是会导致即时崩溃。崩溃可能会也可能不会发生在下一次分配损坏的堆时,因此调试这种情况可能会非常令人沮丧。

关于c++ - MSVCP110D.dll 和 Visual Studio 2013,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18950479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com