HDJ*_*MAI 5 c visual-c++ visual-studio-2015
当我尝试编译文件时,我在Visual Studio 2015中出现错误C4576:transcoding.c.
这个文件的源代码在这里:transcoding.c
错误C4576:带括号的类型后跟初始化列表是非标准的显式类型转换语法
该指令的第127行出现错误:
enc_ctx->time_base = (AVRational) { 1, enc_ctx->sample_rate };
Run Code Online (Sandbox Code Playgroud)
我在我的项目https://www.ffmpeg.org/download.html中使用了ffmpeg的来源
我四处寻找解决方案,但我无法纠正错误
如果有人找到类似的东西,请提供一个想法
小智 6
删除宏定义中类型周围的括号。那应该有效。
enc_ctx->time_base = AVRational { 1, enc_ctx->sample_rate };
Run Code Online (Sandbox Code Playgroud)
尽管有其他一些答案错误地声称,VS2015编译器为C99功能提供了全面的支持,包括您试图在该有问题的代码行中使用的复合文字功能。
对于错误消息的一种可能解释是,尽管源文件被命名为.cfile,但它仍被编译为C ++文件。项目设置可能会明确请求此文件的C ++编译器。在C ++中,此代码无效。
检查您的编译设置,以查看它是否包含/TP(“编译为C ++”)开关。
老问题,但是......解决方案非常简单:
AVRational tb;
tb.num = 1;
tb.den = enc_ctx->sample_rate;
enc_ctx->time_base = tb;
Run Code Online (Sandbox Code Playgroud)
或者
enc_ctx->time_base.num = 1;
enc_ctx->time_base.den = enc_ctx->sample_rate;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4229 次 |
| 最近记录: |