C++ 语法错误:缺少';{&';之前';';

C++ 语法错误:缺少';{&';之前';';,c++,ffmpeg,C++,Ffmpeg,我有一个AVOption结构: static const AVOption options[] = { COMMON_OPTIONS // error here { NULL } }; 而通用选项的定义如下: #define COMMON_OPTIONS \ { "interp", "select interpolation mode", OFFSET(interpolation), AV_OPT_TYPE_INT, {.i64=INTERPO

我有一个AVOption结构:

static const AVOption options[] = {  
        COMMON_OPTIONS  // error here
        { NULL }  
    };
通用选项
的定义如下:

#define COMMON_OPTIONS \
{ "interp", "select interpolation mode", OFFSET(interpolation), AV_OPT_TYPE_INT, {.i64=INTERPOLATE_TETRAHEDRAL}, 0, NB_INTERP_MODE-1, FLAGS, "interp_mode" }, \
{NULL}
我得到一个错误:

2>c:\users\awki6\desktop\ffmpeg\libavfilter\vsrc_testsrc.cpp(98): error C2143: syntax error : missing '}' before '.'

您的
COMMON_OPTIONS
宏已包含
{NULL}
,并且没有以
结尾,因此:

static const AVOption options[] = {  
        COMMON_OPTIONS
    };
这会解决你的问题

编辑前的过去答案: 即使我们不知道
COMMON\u OPTIONS
扩展到了什么,我猜您还是忽略了它后面的逗号:

static const AVOption options[] = {  
        COMMON_OPTIONS,
        //            ^
        { NULL }  
    };

COMMON\u OPTIONS
扩展到什么?定义COMMON\u OPTIONS\{“interp”,“选择插值模式”,偏移(插值),AV\u OPT\u TYPE\u INT,{.i64=INTERPOLATE\u四面体},0,NB\u interp\u mode-1,标志,“interp\u mode”},{NULL}