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
相关推荐
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁3 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
孙启超3 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int3 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
慧都小项3 天前
当边缘AI上产线:QtitanDocking 如何让工业 HMI 实现多视图协同
人工智能·qt·ui·边缘计算·qt6.3
CoderYanger3 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读3 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json
CCCCCCCCharlie3 天前
Linux进程控制四大核心操作
linux·开发语言