我在编写自定义资源模块(特别是应用程序)时遇到问题。在尝试编译Asterisk时,我收到有关标准星号包含的module.h的错误。错误如下:
In file included from res_application.c:6:0:
/usr/local/src/asterisk-14.4.1/include/asterisk/module.h:526:22: error: expected ',' or ';' at end of input
static const struct ast_module_info *ast_module_info = &__mod_info
^
我还没有找到这个错误背后的原因。我可以在编写模块之前构建Asterisk并运行服务器,所以我很惊讶现在看到这个错误了。任何帮助赞赏。提前谢谢。
编辑:来源代码段:
/* EMBEDDED_MODULE */
#define AST_MODULE_INFO(keystr, flags_to_set, desc, fields...) \
static struct ast_module_info \
__MODULE_INFO_SECTION \
__mod_info = { \
__MODULE_INFO_GLOBALS \
.name = AST_MODULE, \
.flags = flags_to_set, \
.description = desc, \
.key = keystr, \
.buildopt_sum = AST_BUILDOPT_SUM, \
fields \
}; \
static void __attribute__((constructor)) __reg_module(void) \
{ \
ast_module_register(&__mod_info); \
} \
static void __attribute__((destructor)) __unreg_module(void) \
{ \
ast_module_unregister(&__mod_info); \
} \
struct ast_module *AST_MODULE_SELF_SYM(void) \
{ \
return __mod_info.self; \
} \
static const struct ast_module_info *ast_module_info = &__mod_info
#define AST_MODULE_INFO_STANDARD(keystr, desc) \
AST_MODULE_INFO(keystr, AST_MODFLAG_LOAD_ORDER, desc, \
.load = load_module, \
.unload = unload_module, \
.load_pri = AST_MODPRI_DEFAULT, \
.support_level = AST_MODULE_SUPPORT_CORE, \
)
#define AST_MODULE_INFO_STANDARD_EXTENDED(keystr, desc) \
AST_MODULE_INFO(keystr, AST_MODFLAG_LOAD_ORDER, desc, \
.load = load_module, \
.unload = unload_module, \
.load_pri = AST_MODPRI_DEFAULT, \
.support_level = AST_MODULE_SUPPORT_EXTENDED, \
)
#define AST_MODULE_INFO_STANDARD_DEPRECATED(keystr, desc) \
AST_MODULE_INFO(keystr, AST_MODFLAG_LOAD_ORDER, desc, \
.load = load_module, \
.unload = unload_module, \
.load_pri = AST_MODPRI_DEFAULT, \
.support_level = AST_MODULE_SUPPORT_DEPRECATED, \
)
#endif