Qt中windeployqt.exe工具的使用:解决使用CMake创建的项目点击exe文件后系统提示0xc000007b的问题

1.前言:

我在Qt Creator中使用CMake创建的项目,在Qt Creator中程序运行正常 (release版本) ,然后我尝试在文件夹中点击exe运行程序,提示我缺少动态库,随后我使用这个方式:参考博客,添加了缺失的动态库,继续点击exe程序,又提示我缺少libgcc_s_dw2-1.dll动态库,查阅资料可知windeployqt.exe 主要处理 Qt 框架自身的依赖,有时候会漏掉编译器的运行库,因此在使用windeployqt.exe的同时要加上--compiler-runtime选项:

bash 复制代码
windeployqt.exe --compiler-runtime your_app.exe

2.主要问题

解决完上面的问题后我继续点击exe程序,然后系统提示我0xc000007b的问题,以前使用QMake的时候未出现过这个问题,后面查阅相关资料可知,使用QMake的时候 windeployqt工具会尝试自动检测你的 your_app.exe 是 Debug 版本还是 Release 版本。但在某些情况下(如使用 CMake 或自定义构建系统),自动检测可能失败。此时加上 --release 参数,就是明确告诉工具"我的程序是 Release 版本,请按 Release 模式处理"。

3.问题原因

我就是因为我程序是Release 版本,但是使用windeployqt工具时检测出来的是debug版本,所以补齐的依赖库也是用的debug版本,这就导致系统提示0xc000007b,如下图所示:

4.解决方法

bash 复制代码
windeployqt.exe --compiler-runtime --release your_app.exe
相关推荐
WWJA王文举5 小时前
I²C通信完整流程详解:START、地址、ACK、数据、Repeated START和STOP一次讲透
c语言·开发语言
zhanghaha13145 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
qq_448011166 小时前
C语言中的动态内存分配
c语言·开发语言·php
汉字萌萌哒7 小时前
2024CSP-J入门级C++真题详解
开发语言·c++
arbboter7 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
汉字萌萌哒8 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
叠层归一研究院8 小时前
AGI 系统(十一):二阶网络 — 二阶递归 × 多主体 (元符号网络)
开发语言·人工智能·算法·php·agi
小雨笙笙9 小时前
C语言:变量三属性——存储类型
c语言·开发语言
果果燕10 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤10 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php