c++ - 使用 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:\WINDOWS\SYSTEM32\MSVCP140D.dll
是用vector
包含在D:
驱动器上的
所以故障是在 DLL 内,而不是在您的驱动器上。我相信该文件是 Visual Studio 2015 代码的支持文件,C++
由供应商 (Microsoft) 在“D:”上构建
MSVCP140 D 末尾的D表示它是调试二进制文件。这不应该被部署,除非它是安装了 VS2015 的开发者机器。
如果是这种情况,vector
则可以通过查看您的计算机来读取错误。
如果您没有安装 VS2015,那么不幸的是,您的代码与发布调试代码的人发生了冲突。
在调试器中打开代码,并检查故障是否是由您控制的任何东西(函数的参数)提供的数据中的故障引起的,假设您有 vs2015,请让 VS 从您的安装中打开矢量。
推荐阅读
- java - 多少个线程可以并行运行?
- gitlab - 基于 hugo 的网站在基于 hugo 的网站中
- c++ - 带有枚举解释的隐式非运算符(!)?
- node.js - 广播时不支持回调
- angular - 是否可以手动将服务实例作为参数传递给对象?
- python - 使用 For 循环打开文件 (Python 3)
- android - Android 5+ 光栅和矢量图像冲突
- asp.net-mvc - 使用模型中的项目的完整日历调度程序资源
- hyperledger-composer - 在 IBM Container Service 的免费计划上创建基本 IBM Blockchain 网络时出错
- sql - 对 SQL 表中的多个列执行搜索操作的有效方法是什么