ffmpeg android cmdutils.h:209:40: error: expected ')' 585 "0x%"PRIx64

关于ffmpeg在android上用命令行方式使用,添加ffmpeg.c等文件后编译报错cmdutils.h:209:40: error: expected ‘)’

这是一个很蠢的地方:
一句话:
class是关键字不能作为参数名
展开来看


/**
 * Show help for all options with given flags in class and all its
 * children.
 */

void show_help_children(const AVClass *class, int flags);

这是源代码,其中class是参数名,在androidStudio上显示的时候其实是加粗了的,识别成了关键字clas。而原本ffmpeg是纯C代码,class不会被识别成关键字,所以他源代码这样写没问题,但是咱们这里不一样了,于是就被错误的识别成了class关键字,语法自然被打乱。

解决方法:只需要将这里和cmdutil.c里面的这个函数的参数名修改一下就ok了,我修改成了avvclass。
后果:我第一次用ffmpeg -h来作为测试的方法,结果这个show_help_children可能就是跟-h有关的函数,我把他给注释掉了,自然测试不成,排查半天,最后用了别人的so库,这下可能要看看自己的是不是改了这里也行了。

另外这里面在585行也有一个错误我正在找解决方法。
解决方法:
修改ffmpeg.h ffmpeg.c cmdutils.h cmdutils.c文件
在ffmpeg.c中找到main函数(在文件最后),将名称改为run,并在头文件中声明该函数。
在cmdutils.h文件中找到"0x%"PRIx64所在的行,在PR前加入一个空格,不然编译会报错。

这个空格来自
原文链接:https://blog.csdn.net/wuppa/article/details/91879902
想不到竟然被这么白痴的问题难住了,看来当初应该仔细点,他们注释了一大堆方法跟我这里的不一样啊

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值