win7, vs2010, ,ffmpeg release 版本崩溃问题
2016-03-22 18:41
633 查看
问题描述:
win7, Vs2010,
使用ffmpeg api做开发, debug版本运行正常,切换到release时,出现一些内存越界的异常,类似 "0x00905a4d 处未处理的异常: 0xC0000005: 读取位置
0x00905a4d 时发生访问冲突",
单独写个小的测试, 只调用一个ffmpeg 函数, debug版本运行ok, release版本直接崩溃
测试小程序: 【注,
头文件和库依赖均配置好】
#include <stdio.h>
extern "C"{
#include "libavutil/time.h"
};
int main(int argc, char *argv[]){
printf("hello world!, 当前时间:%d\n", av_gettime());
return 0;
}
网上解决方法:
修改配置, 链接器->优化->引用, 在release版本下面使用"保留未引用数据(/OPT:NOREF)"选项
分析瞎猜:
来看vs2010中此项的默认配置, release是删除从未使用过的函数或数据, debug此配置项为空, 如果将debug版也置成删除, 也会崩溃
猜测, ffmpeg函数量庞大, vs不够智能,配置引用删除选项后, 会误删有用的函数或数据, 导致程序崩溃
win7, Vs2010,
使用ffmpeg api做开发, debug版本运行正常,切换到release时,出现一些内存越界的异常,类似 "0x00905a4d 处未处理的异常: 0xC0000005: 读取位置
0x00905a4d 时发生访问冲突",
单独写个小的测试, 只调用一个ffmpeg 函数, debug版本运行ok, release版本直接崩溃
测试小程序: 【注,
头文件和库依赖均配置好】
#include <stdio.h>
extern "C"{
#include "libavutil/time.h"
};
int main(int argc, char *argv[]){
printf("hello world!, 当前时间:%d\n", av_gettime());
return 0;
}
网上解决方法:
修改配置, 链接器->优化->引用, 在release版本下面使用"保留未引用数据(/OPT:NOREF)"选项
分析瞎猜:
来看vs2010中此项的默认配置, release是删除从未使用过的函数或数据, debug此配置项为空, 如果将debug版也置成删除, 也会崩溃
猜测, ffmpeg函数量庞大, vs不够智能,配置引用删除选项后, 会误删有用的函数或数据, 导致程序崩溃
相关文章推荐
- Win7 不能运行bat
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- Managed Media Aggregation using Rtsp and Rtp
- [总结]FFMPEG视音频编解码零基础学习方法
- C#实现将程序锁定到Win7任务栏的方法
- win7安装ruby on rails开发环境
- Win7系统安装MySQL5.5.21图解教程
- 利用Ffmpeg获得flv视频缩略图和视频时间的代码
- Win7 32/64位系统下安装SQL2005和SP3补丁安装教程[图文]
- codeigniter教程之上传视频并使用ffmpeg转flv示例
- Delphi2007编译的程序在Win7下图标模糊的解决办法
- win7 iis7.5 乱码 和 解析不了ASP的ADO连接数据库 的解决方法
- win7下安装 JDK 基本流程
- win7下memCache的安装过程(具体操作步骤)
- 简单介绍win7下搭建apache+php+mysql开发环境
- PHP使用ffmpeg给视频增加字幕显示的方法
- Win7、win2008中让IIS7支持asp的方法
- Win7中开启系统自带FTP服务器的方法
- PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
- win7计划任务定时执行PHP脚本设置图解