【问题记录】Qt的exe文件无法单独运行但可以编译运行(应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序)

总结:dll出问题了+ 未分清 64 or 32 位环境区别

问题:出问题的exe名称为TestApp.exe,在Visual Studio下编译运行都正常,但无法直接点击exe运行。报错为(应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序)

本人环境:基于visual studio IDE下的QT编译器,共有四种,在 qt-版本号 文件夹下。

参考文章:“应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。”_nemo2011的博客-CSDN博客

我在其基础上详细化,记录了具体操作,记录一下自己的解决过程~~~~

我的问题解决步骤如下:

1.看准自己项目的编译环境

 我电脑虽然是64位的,但是编译器环境是32位的,故之后所有都需要以32位为标准

由于是Visual Studio ,所以采用下面文件夹中的msvc2017环境进行编译(没有标注64位就是32位)

2.添加系统环境变量

打开控制面板搜索环境变量,对系统path进行更改

按照上一步的环境进行配置!!!不要添加冗余路径,一项即可!!

 PS:多项也可以,但是要在IDE中选择正确的default编译器,不然系统会搞混64和32位的dll

 3.进入qt自带的命令行中

开始框中搜索 → 选择合适的环境(比如我是MSVC 2017 32-bit)→ 进入目标exe程序所在文件夹

 输入命令

windeployqt xxx(目标exe名称)

 输出如下图:

PS:该命令(windeployqt)若添加了系统Path后,也可以直接在系统cmd中运行,前提是:环境Path只有适合自己项目的那一项!!(only 32 or 64)  否则系统会弄混。。。然后就又失败链接了qaq

此时,在exe的文件夹下面会多出很多文件夹和dll文件,表明已经link成功↓↓↓↓

再次强调:不同位数的编译器链接出来的dll不同!一定一定要适合自己的程序

 4.exe可以单独运行啦~~

 看了网上很多解答,自己又摸索了一下,总结就是 —— 一定要区分32和64位环境!!!我之前就是用64位的环境编译的32位程序,结果即使生成了很多链接的dll还是无法运行qwq

后来弄清楚各种编译器的区别,才查遍全网,根据别的教程解决了自己的问题( •̀ ω •́ )y

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值