首页 > 解决方案 > 使用 msvc2019 和 qt 6.1 调试断言失败,引用了一个不存在的文件

问题描述

当我调试我的应用程序时,我得到了一个 Debug Assertion Failed 输出,

调试断言失败!程序:C:\WINDOWS\SYSTEM32\MSVCP140D.dll 文件:D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\vector 行:73 表达式:vector iterator not dereferencable 有关您的程序如何导致的信息断言失败,请参阅有关断言的 Visual C++ 文档。(按重试调试应用程序)

我的 D 盘中没有安装 Visual Studio 2015,所以目标文件不存在,我该如何解决这个问题?

加:感谢您的所有回复,我的问题已解决,我尝试了几天来解决这个问题。我仍然不确定为什么会发生这种情况,我的猜测是使用了一些不正确的库。

问候

标签: c++

解决方案


系统安装的文件C:\WINDOWS\SYSTEM32\MSVCP140D.dll是用vector包含在D:驱动器上的

所以故障是在 DLL 内,而不是在您的驱动器上。我相信该文件是 Visual Studio 2015 代码的支持文件,C++由供应商 (Microsoft) 在“D:”上构建

MSVCP140 D 末尾的D表示它是调试二进制文件。这不应该被部署,除非它是安装了 VS2015 的开发者机器。

如果是这种情况,vector则可以通过查看您的计算机来读取错误。

如果您没有安装 VS2015,那么不幸的是,您的代码与发布调试代码的人发生了冲突。

在调试器中打开代码,并检查故障是否是由您控制的任何东西(函数的参数)提供的数据中的故障引起的,假设您有 vs2015,请让 VS 从您的安装中打开矢量。


推荐阅读