我有这样的功能:

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/

10-16 15:00