我有这样的功能:
void cleanup_module(void)
{
/*
* Unregister the device
*/
if(unregister_chrdev(Major, DEVICE_NAME)<0)
printk(KERN_ALERT "Error in unregister_chrdev:\n");
}
和错误:
/home/student/kernel/hello.c: In function ‘cleanup_module’:
/home/student/kernel/hello.c:39:2: error: void value not ignored as it ought to be
这一行是带有 if 语句的那一行。你知道我做错了什么吗?
最佳答案
这意味着 unregister_chrdev
没有返回值(它是 void
),但您已将其放入 if 中。也就是说,您正在使用一个应该被忽略的 void 值。因此出现错误消息。
查看 this question,它询问为什么返回值更改为 void。
关于c - 为简单设备驱动程序编译内核模块时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11047666/