sorry, unimplemented: non-trivial designated initializers not supported解决

这是因为C和C++结构体初始化不同造成的
对于一个结构体
C里面初始化

static const AVClass framesync_class = {
    .version                   = LIBAVUTIL_VERSION_INT,
    .class_name                = "framesync",
    .item_name                 = framesync_name,
    .category                  = AV_CLASS_CATEGORY_FILTER,
    .option                    = NULL,
    .parent_log_context_offset = OFFSET(parent),
};

但是C++不支持这种方式,所以会报错
解决
1 按照这种格式初始化(各成员的顺序必须和定义里的一致)

static const AVClass framesync_class = {
    version                   : LIBAVUTIL_VERSION_INT,
    class_name                : "framesync",
    item_name                 : framesync_name,
    category                  : AV_CLASS_CATEGORY_FILTER,
    option                    : NULL,
    parent_log_context_offset : OFFSET(parent),
};

2
把这段代码放到extern “C” {}里面,参考
http://www.cnblogs.com/skynet/archive/2010/07/10/1774964.html

你可能感兴趣的:(debug,c语言,c++)