Win10 Qt MSVC2017 64bit 使用webEngine出现(ig9icd64.dll) (*.exe 中)处有未经处理的异常: 0xC000041D: 用户回调期间遇到未经处理的异常

本文介绍在QT环境中调用百度Echarts时遇到的未处理异常问题及解决方案。通过设置QSurfaceFormat和禁用QApplication的着色器磁盘缓存,成功解决了异常问题。
部署运行你感兴趣的模型镜像

一直想使用在QT中调用百度Echarts,刚把Qt环境装好,运行程序效果也很正常,但是隔天运行程序后就出现了【(ig9icd64.dll) (*.exe 中)处有未经处理的异常: 0xC000041D: 用户回调期间遇到未经处理的异常】,百度后都是说显卡驱动不匹配导致的,可查看显卡驱动并未有更新的情况,后来找到这篇博文https://blog.youkuaiyun.com/yangfahe1/article/details/84034636,按上面的方案加入QSurfaceFormat的设置,问题解决。

该问题在Qt Bug 报告里面也提到过,设置QApplication::setAttribute(Qt::AA_DisableShaderDiskCache);禁用着色器磁盘缓存即可。

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

<think>首先,用户的问题是关于在Qt中配置MSVC2017 64位编译器以使用OpenCV库。用户提供了几个引用,这些引用是站内信息,我需要参考它们来构建回答。 用户指令要求: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如[^1]。 - 回答结构清晰,帮助用户逐步解决问题,保证真实可靠。 参考的引用: - [^1]: 描述了Qt 5.12使用MSVC 2013 32bit编译器配置OpenCV的步骤。 - [^2]: 关于Qt配置OpenCV(MSVC编译),包括环境变量配置。 - [^3]: 解决QtCreator使用msvc2017x64编译器编译项目报错“编译器的堆空间不足”的方法。 - [^4]: Qt_msvc2017_64_配置_OpenCV_4.5.2,提到了将bin、lib、include拷贝至Qt目录。 用户需求:配置使用MSVC2017 64位编译器的Qt项目以使用OpenCV库。 我的回答需要结构化,逐步指导用户如何配置。步骤应该包括: 1. 准备环境:确保安装了必要的软件。 2. 编译OpenCV(如果需要)。 3. 配置Qt项目以使用OpenCV。 4. 测试配置。 由于引用中提到了一些关键点,我需要整合这些信息: - 从[^1]和[^2],环境变量配置是重要的。 - 从[^3],如果遇到堆空间不足,可能需要增加系统内存或调整设置。 - 从[^4],可以直接拷贝OpenCV的bin、lib、include到Qt目录,但这可能不是标准做法;通常需要设置Qt项目的.pro文件。 标准配置步骤: 1. **安装必要软件**: - Qt Creator with MSVC2017 64bit compiler. - Visual Studio 2017 (因为MSVC编译器是VS的一部分)。 - CMake (用于编译OpenCV)。 - OpenCV源代码。 2. **编译OpenCV**: - 使用CMake生成VS项目文件。 - 用VS 2017编译OpenCV。 3. **配置环境变量**: - 添加OpenCV的bin目录到系统PATH。 4. **配置Qt项目**: - 在Qt项目的.pro文件中添加OpenCV的include和lib路径。 - 添加必要的库文件。 5. **测试配置**:编写一个简单的Qt程序来使用OpenCV函数。 从引用[^4],它提到直接将bin、lib、include拷贝到Qt目录,但这不是必须的;更常见的是在项目文件中指定路径。 步骤大纲: 1. 确保已安装所需软件。 2. 编译OpenCV(如果尚未编译)。 3. 设置环境变量。 4.Qt Creator中配置项目。 5. 测试和常见问题解决。 生成相关问题:在回答结束时,基于主题生成几个相关问题。 确保回答真实可靠:基于我的知识和提供的引用。 现在,构建回答: - **开头**:简要介绍配置的重要性。 - **步骤**:分步骤详细说明。 - **结尾**:生成相关问题。 在引用部分:当提到特定步骤时,自然地添加引用标识,如[^1]。 例如: - 参考引用[^1],下载和安装步骤类似。 - 引用[^2]强调环境变量配置。 - 引用[^3]解决堆空间不足问题。 - 引用[^4]提到拷贝文件的方法。 最终回答结构: 1. **准备环境** 2. **编译OpenCV** 3. **配置环境变量** 4. **配置Qt项目** 5. **测试配置** 6. **常见问题解决** 7. **相关问题**</think>### 在Qt中配置MSVC2017 64位编译器以使用OpenCV库 配置Qt项目使用MSVC2017 64位编译器和OpenCV库需要系统性的步骤,包括环境准备、OpenCV编译、路径配置和项目设置。以下是详细指南,基于最佳实践和参考站内信息[^1][^2][^4]。整个过程假设您已安装**Qt 5.12+(含MSVC2017 64位套件)**、**Visual Studio 2017**和**CMake**。 --- ### 步骤1: 准备环境 确保所有依赖软件已正确安装: 1. **下载OpenCV**: - 访问[OpenCV官网](https://opencv.org/releases/),下载源代码(如OpenCV 3.4.6或4.5.2)。 - 可选:从GitHub下载`opencv_contrib`扩展模块以支持额外功能[^1]。 2. **安装QtMSVC编译器**: - 在Qt安装时,勾选**MSVC2017 64-bit**组件(位于“Qt > Qt 5.12.x”下)。 - 验证Qt Creator中编译器是否可用:打开Qt Creator > **工具 > 选项 > Kits**,确保MSVC2017 64-bit已检测到。 3. **安装Visual Studio 2017**: - 安装时勾选**C++桌面开发**工作负载,包括MSVC v141工具集。 4. **安装CMake**: - 从[官网](https://cmake.org/download/)下载最新版本。 > **注意**:如果编译时遇到“编译器的堆空间不足”错误,增加系统内存(如升级到16GB)或关闭后台程序可解决[^3]。 --- ### 步骤2: 编译OpenCV 使用CMake和VS 2017编译OpenCV: 1. **生成VS项目文件**: - 打开CMake GUI,设置源码路径(e.g., `D:/opencv/sources`)和构建路径(e.g., `D:/opencv/build`)。 - 点击**Configure**,选择**Visual Studio 2017 Win64**作为生成器。 - 勾选`BUILD_opencv_world`(将所有库合并为单个文件)和`OPENCV_ENABLE_NONFREE`(启用专利算法)。 - 如需`opencv_contrib`,添加路径到`OPENCV_EXTRA_MODULES_PATH`[^1]。 - 点击**Generate**生成解决方案。 2. **编译OpenCV**: - 打开生成的`OpenCV.sln`(位于构建路径),在VS 2017中选择**Release x64**模式。 - 右键点击**ALL_BUILD** > **生成**(编译过程需30-60分钟)。 - 完成后,右键点击**INSTALL** > **生成**,将文件安装到指定目录(e.g., `D:/opencv/install`)。 --- ### 步骤3: 配置环境变量 确保系统能识别OpenCV库: 1. **添加OpenCV的bin目录到PATH**: - 打开**系统属性 > 高级 > 环境变量**,在`Path`中添加OpenCV的bin路径(e.g., `D:\opencv\build\x64\vc15\bin`)[^2][^4]。 2. **可选:拷贝文件到Qt目录**(简化路径管理): - 将`include`、`lib`和`bin`文件夹复制到QtMSVC目录(e.g., `Qt\5.12.x\msvc2017_64\`)[^4]。 --- ### 步骤4: 配置Qt项目 在Qt Creator中设置项目: 1. **创建新项目**: - 选择**Qt Widgets Application**,Kits中选择**Desktop Qt 5.12.x MSVC2017 64bit**。 2. **修改.pro文件**: - 添加OpenCV的头文件和库路径: ```qmake # 添加包含路径 INCLUDEPATH += "D:/opencv/build/include" # 添加库路径(根据实际路径调整) LIBS += -L"D:/opencv/build/x64/vc15/lib" \ -lopencv_world451 # 若使用OpenCV 4.5.1,版本号需匹配 ``` - 若编译Debug版本,添加`-lopencv_world451d`(带&#39;d&#39;后缀)。 3. **验证配置**: - 右键项目 > **执行qmake**,然后构建项目。若无错误,说明配置成功。 --- ### 步骤5: 测试配置 编写简单代码测试OpenCV功能: 1. **在main.cpp中添加测试代码**: ```cpp #include <opencv2/opencv.hpp> #include <QDebug> int main(int argc, char *argv[]) { cv::Mat image = cv::imread("C:/test.jpg"); // 替换为实际图片路径 if (image.empty()) { qDebug() << "Failed to load image!"; return -1; } qDebug() << "OpenCV configured successfully! Image size:" << image.cols << "x" << image.rows; return 0; } ``` 2. **运行项目**: - 如果输出图像尺寸信息,表示OpenCV集成成功。 --- ### 常见问题解决 - **编译错误“未找到opencv2/opencv.hpp”**:检查`.pro`文件中的`INCLUDEPATH`是否指向正确的`include`目录。 - **运行时错误“缺少.dll文件”**:确保OpenCV的`bin`目录在`PATH`中,或将所有`.dll`文件复制到项目输出目录(e.g., `release/`)[^2]。 - **堆空间不足错误**:增加系统内存或减少并行编译任务(在Qt Creator的**项目 > 构建设置**中调整`/Zm`编译器选项)[^3]。 --- ### 相关问题 1. 如何在Qt Creator中使用MSVC编译器调试OpenCV程序? 2. OpenCV在Qt中如何实现实时摄像头视频处理? 3. 如何交叉编译OpenCV以在嵌入式Qt项目中使用? [^1]: Qt 5.12使用MSVC 2013 32bit 编译器+使用visual studio 2017、cmake编译opencv3.4.6环境配置与示例演示。 [^2]: Qt配置OpenCV(MSVC编译)Qt Creator+MSVC开发环境搭建(Qt Creator编码+MSVC编译)_qtcreator msvc-优快云博客。 [^3]: 关于 QtCreator使用msvc2017x64编译器编译项目报错”编译器的堆空间不足“错误 的解决方法。 [^4]: Qt_msvc2017_64_配置_OpenCV_4.5.2。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值