2012-08-03 53 views
2

编译自定义Linux内核时出现一些警告。我减少了我的代码(调试),以这样的:数据定义在函数定义中没有类型或存储类

int sw_totcp(struct ip_vs_service *svc) 
{ 
     return(1); 
} 
EXPORT_SYMBOL(sw_totcp); 

int (*sw_totcpcall)(struct ip_vs_service *) = &sw_totcp; 
EXPORT_SYMBOL(sw_totcpcall); 

但还是收到这些警告(用于功能都和函数指针):

warning: data definition has no type or storage class [enabled by default] 
warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’ [-Wimplicit-int] 
warning: parameter names (without types) in function declaration [enabled by default] 

它们在头文件中正确声明如:

extern int sw_totcp(struct ip_vs_service *); 

extern int (*sw_totcpcall)(struct ip_vs_service *); 

什么可能是错误的?

+2

它看起来像你没有包含'EXPORT_SYMBOL'宏被定义的头部。 – dasblinkenlight 2012-08-03 02:26:16

+0

哦,你是错的,是一个错误。你想回答这个问题,将其设置为正确的? @dasblinkenlight – jeanc 2012-08-03 02:43:25

回答

2

看起来你不包括其中EXPORT_SYMBOL定义宏的头。这就是编译器抱怨隐式声明的原因:它认为这是一个返回int的函数。

相关问题