编译公司一个大型项目的时候遇到编译错误:
error: expected identifier before ',' token ##__VA_ARGS__,
出现这个的原因是因为当__VA_ARGS__为空的时候,##没有删除前面的逗号,导致多出了一个逗号。##__VA_ARGS__不生效的原因是因为当前设置的编译器选项没有添加gun扩展,所以编译器不支持通过##__VA_ARGS__自动删除逗号
在编译时添加gun扩展:
CXXFLAGS = -std=c++14 ------> CXXFLAGS = -std=gnu++14
如果是CFLAGS,则改成:
CFLAGS = -std=c11 ------> CFLAGS = -std=gun11