编译出现error: unknown field ‘device’ specified in initializer和warning: braces around scalar initializer

本文探讨了在Linux驱动开发中遇到的C语言结构体初始化错误,具体为将`driver`误写为`device`导致的编译报错。错误提示表明在初始化`gpio_key_drv.shutdown`时出现问题。解决方案是检查并修正结构体成员变量的名称,确保正确初始化`driver`字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/home/book/Linux/driver/key/gpio_key_drv.c:99:3: error: unknown field ‘device’ specified in initializer
   .device  = {
   ^
/home/book/Linux/driver/key/gpio_key_drv.c:99:3: warning: braces around scalar initializer
/home/book/Linux/driver/key/gpio_key_drv.c:99:3: warning: (near initialization for ‘gpio_key_drv.shutdown’)

一般出现在结构体初始化上,建议检查结构体中的成员变量名是否正确,上面的报错是因为成员变量driver写成了device,导致driver结构体变量内的初始化也报错

static struct platform_driver gpio_key_drv = {
        .probe         = key_probe_drv,
        .remove     = key_remove_drv,
        .device     = {               //应该是 .driver
            .name             = "alientek_key",
            .of_match_table = alientek_keys,
        },
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值