Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案

目录

一、首先说明出现这个问题的机器配置

二、问题描述

三、摸索解决

四:最终解决


一、首先说明出现这个问题的机器配置

PC:Windows  7  64位

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第1张图片

Qt Creater:V4.2.1 Based on Qt 5.8.0(MSVC2015 32bit)

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第2张图片

FFepeg:ffmpeg-4.2-win32-dev(关于Qt Creater如何配置FFepeg也比较简单,大家百度一下即可)

二、问题描述

         在Qt Creater 中的 xxx.pro 文件中配置添加好FFepeg的路径后,简单的添加了FFepeg的一个函数,验证是否配置成功,链路是否打通。

现象:构建(编译)项目可以正常通过,无警告无错误提示

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第3张图片

运行的时候提示错误,“xxx.exe程序异常结束。

三、摸索解决

开始也是在网上各种查找,搜了一些关于这个问题的解释和解决方法,比如说:

1.是环境变量的问题。加上也无果,没有解决问题
2.影子创建比较蛋疼,建议去掉。去掉也无果,没有解决问题

3.要各种倒腾添加库文件,方法肯定有很多种,大家也必要来回试了(一般主流的方法有两大类,一类是直接在xxx.pro文件中添加头文件和库文件的路径;一类是点击工程右键--->添加库--->外部库.....)

4......  等等,总之试了都是没有结果

四:最终解决

在测试了前面的方法没有结果时,心想这还没开始呢,就被这么个小事情给挡住了,着实可恶!静下心想了想,可以试一下,在调试模式下会出现什么现象呢!

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第4张图片

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第5张图片

问题:During startup program exited with code 0xc0000135

大概意思是在启动程序时退出了(编译肯定是没有问题)

分析:既然是启动运行的时候出现了问题,那我们是不是可以直接到Debug模式下生成的exe路径下运行程序呢?--->在那里我们是不是缺少什么东西导致程序的奔溃?

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第6张图片

显而易见这里需要运行的xxx.exe程序缺少库文件,是因为我用到了外部的dll库,lib库我是添加到了.pro文件中了的,所以编译时不会出错,运行的时候没有找到这个库文件就会报错。

而提示中提示我们缺少avcodec-58.dll,可是在ffmpeg-4.2-win32-dev 这个文件夹下没有找到啊?怎么办

解释:程序所需要的库文件在 ffmpeg-4.2-win32-shared (需要在官网下载shared类型的包)文件夹下

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第7张图片

之后将ffmpeg-4.2-win32-shared/bin下的所有文件拷贝到(build-FFepegForQtFirstTest-Desktop_Qt_5_8_0_MinGW_32bit-Debug)xxx\debug\下(也就是大家的构建目录)

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第8张图片

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第9张图片

之后大家在Qt Creater中编译运行一下,没有出现程序异常结束的错误,完美解决。

Qt Ctrater 调用FFepeg等外部库函数提示 程序异常结束 且输出xxx.exe crashed的完美解决方案_第10张图片

如果这样还是会出现程序异常结束的话,不妨清除一下错误,再编译运行一下试试。


总结:出现 “程序异常错误” 的原因基本上是因为库文件的原因导致的,大家可以从库文件上进行查找原因

无非就是:

1:库文件的路径找不到

2:库文件添加错误(例如32和64位库文件使用错误,本来是32位环境使用了64位的库文件)

3、库文件缺失(少添加)

 

你可能感兴趣的:(路漫漫,---,Qt学习之路)