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
相关推荐
xiaoshuaishuai81 小时前
C# 定制化Markdown编辑器
开发语言·c#·编辑器
DogDaoDao1 小时前
C++核心技术深度剖析:从底层原理到工程实践
开发语言·c++·面试·程序员·指针·虚函数
磊 子2 小时前
C++移动语义和智能指针
java·开发语言·c++
不负岁月无痕2 小时前
C++继承与多态知识点及其高频面试问题
开发语言·c++·面试
June`2 小时前
如何组织一个并行程序
开发语言·cuda
dtq04242 小时前
C语言刷题函数1-判断素数(分支语句,函数两种方法)
c语言·开发语言·学习
乘浪初心2 小时前
python调用API接口,免费API调取,学习如何调取API接口并反馈你输入的内容
开发语言·python·api·免费
AI玫瑰助手2 小时前
Python模块:import导入模块与模块的搜索路径
android·开发语言·python
傻啦嘿哟2 小时前
一篇文章讲清楚Python的变量作用域
开发语言·python