ffpmeg笔记:(1)编译雷神的ffplay4MFC踩坑记录


参考文章:
1.雷霄骅, ffplay播放器移植VC的工程:ffplay for MFC
2.Dezeming, E1097 未知特性 “no_init_all“
3.略知12, FFmpeg在Windows上的坑
4.码农突围, VS2015 编译问题记录(更新)
5.雷霄骅, ffplay for mfc 代码备忘

1.下载雷神源码

gitee托管地址:https://gitee.com/leixiaohua1020/ffplay-for-MFC
下载后解压到工作目录,直接打开项目。
在这里插入图片描述

1.1 打开项目,重定向项目

我的电脑只有一个Windows SDK版本和一个平台工具集,没得选择。
在这里插入图片描述
生成(编译)项目:
在这里插入图片描述

2.编译过程的坑和解决方法

2.1 ffplaycore.cpp(97): error C2556: “long rint(double)”: 重载函数与“double rint(double)”只是在返回类型上不同

这个错误是因为long rint(doouble) 和 <math.h>的同名函数冲突。使用库函数。
双击错误信息,自动跳转到97行,直接注释掉该函数:
在这里插入图片描述
继续编译,产生下一个错误。

2.2 错误 C3688 文本后缀“PRId64”无效;ffplaycore.cpp 1690

双击错误信息,自动跳转到 ffplaycore.cpp 的1690行,

printf("%7.2f A-V:%7.3f fd=%4d aq=%5dKB vq=%5dKB sq=%5dB f=%"PRId64"/%"PRId64"   \r",

在PRId64前面加空格:

printf("%7.2f A-V:%7.3f fd=%4d aq=%5dKB vq=%5dKB sq=%5dB f=%"PRId64"/%"PRId64"   \r",   //错误,没有空格
printf("%7.2f A-V:%7.3f fd=%4d aq=%5dKB vq=%5dKB sq=%5dB f=%" PRId64"/%" PRId64"   \r",	//正确,加了空格

继续编译,产生下一个错误。

2.3 LINK : fatal error LNK1295: “/OPT:NOREF”与“/LTCG:incremental”规范不兼容

下面图中的优化要保持一致:
在这里插入图片描述
继续编译,产生下一个错误。

2.4 错误 LNK2026 模块对于 SAFESEH 映像是不安全的

这里有110个相同的错误。
在这里插入图片描述
解决方法:
在配置->链接器->命令行 ,进行设置:
/SAFESEH:NO
在这里插入图片描述
再次编译,终于成功。掌声响起。
在这里插入图片描述

3.成功运行exe

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值