驱动程序make时出现以下错误:
/home/zqy/文档/char/demo.c: 在函数‘DEMO_cleanup_module’中:
/home/zqy/文档/char/demo.c:161:3: 错误: 隐式声明函数‘kfree’[-Werror=implicit-function-declaration]
/home/zqy/文档/char/demo.c: 在函数‘DEMO_init_module’中:
/home/zqy/文档/char/demo.c:180:2: 错误: 隐式声明函数‘kmalloc’[-Werror=implicit-function-declaration]
/home/zqy/文档/char/demo.c:180:15: 警告: 赋值时将整数赋给指针,未作类型转换 [默认启用]
cc1: some warnings being treated as errors
隐式声明函数错误的意思是函数在未声明之前就被调用了,需要先声明这两个函数,版本变化导致这个错误的出现。
解决方法:
找到kmalloc与kfree的声明头文件并include进来就可以了
#include<linux/slab.h>
/home/zqy/文档/char/demo.c: 在函数‘DEMO_cleanup_module’中:
/home/zqy/文档/char/demo.c:161:3: 错误: 隐式声明函数‘kfree’[-Werror=implicit-function-declaration]
/home/zqy/文档/char/demo.c: 在函数‘DEMO_init_module’中:
/home/zqy/文档/char/demo.c:180:2: 错误: 隐式声明函数‘kmalloc’[-Werror=implicit-function-declaration]
/home/zqy/文档/char/demo.c:180:15: 警告: 赋值时将整数赋给指针,未作类型转换 [默认启用]
cc1: some warnings being treated as errors
隐式声明函数错误的意思是函数在未声明之前就被调用了,需要先声明这两个函数,版本变化导致这个错误的出现。
解决方法:
找到kmalloc与kfree的声明头文件并include进来就可以了
#include<linux/slab.h>