1、Linux驱动编程编译模块时出现:
error:'TASK_NORMAL' undeclared (first use in this function
首先想到未包含库,于是去内查看内核代码,将<linux/sched.h>库文件包含进去
2、再次make
出现新的错误,提示:
error:macro "key_init" pass 1 arguments, but takes just 0
error:expected '=', ',', ';', 'asm' or'__attribute__' before '{' token
...
想到可能是key_init()函数和内核可能冲突,立即去内核找key_init
果不其然,发现内核已经在<input.h>中有如下定义:
#define key_init() do { } while(0)
导致编译未通过
于是修改函数名称,编译顺利通过