warning: useless storage class specifier in empty declaration

本文介绍了一个在Ubuntu环境下使用VisualStudioCode编译Linux驱动程序时遇到的警告问题,并提供了解决方案。通过调整结构体定义的格式,成功消除了编译警告。

在ubuntu下,用Visual Studio Code编译自己写的驱动程序,总是出现如下警告:
在这里插入图片描述
我的代码如下:

static struct timer_dev{
    dev_t devid;
    int major;
    int minor;
    struct cdev cdev;
    struct class *class;
    struct device *device;
};
struct timer_dev gtimer;

改为:

static struct timer_dev{
    dev_t devid;
    int major;
    int minor;
    struct cdev cdev;
    struct class *class;
    struct device *device;
}gtimer;
//struct timer_dev gtimer;

警告消失!

subg_trans_v2.c: In function 'trans_v2_on_dev_add': subg_trans_v2.c:221:2: warning: implicit declaration of function 'subg_get_cfg_val'; did you mean 'subg_get_gstk'? [-Wimplicit-function-declaration] 221 | subg_get_cfg_val(stk->uci_ctx, SUBG_STACK_CFG_PKG_NAME, SUBG_STACK_CFG_SEC_NAME, | ^~~~~~~~~~~~~~~~ | subg_get_gstk subg_trans_v2.c: In function 'trans_v2_reset': subg_trans_v2.c:246:3: warning: implicit declaration of function 'subg_trans_v2_reset'; did you mean 'trans_v2_reset'? [-Wimplicit-function-declaration] 246 | subg_trans_v2_reset(&dev->stk->ll, dev->cfg.addr); // reset kernel | ^~~~~~~~~~~~~~~~~~~ | trans_v2_reset subg_trans_v2.c: At top level: subg_trans_v2.c:352:20: warning: initialization of 'int (*)(struct sub1g_child_dev *, const char *, const char *)' from incompatible pointer type 'int (*)(struct sub1g_child_dev *, char *, unsigned char *)' [-Wincompatible-pointer-types] 352 | .on_mig_dev_add = trans_v2_on_migrate_dev_add, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ subg_trans_v2.c:352:20: note: (near initialization for 'trans_v2_op.on_mig_dev_add') ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DMCU_BOARD_H600W -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include -luci -lubox -lblobmsg_json -lubus -lmbedtls -lmbedcrypto -lutplog -g -o util.o util.c ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DMCU_BOARD_H600W -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include -luci -lubox -lblobmsg_json -lubus -lmbedtls -lmbedcrypto -lutplog -g -o subg_cfg.o subg_cfg.c In file included from subg_cfg.h:4, from subg_cfg.c:1: subg_stack.h:144:15: warning: useless storage class specifier in empty declaration 144 | extern struct trans_v2_dev; | ^~~~~~~~~~~~ ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DMCU_BOARD_H600W -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include -luci -lubox -lblobmsg_json -lubus -lmbedtls -lmbedcrypto -lutplog -g -o subg_throughput_test.o subg_throughput_test.c In file included from subg_throughput_test.h:4, from subg_throughput_test.c:2: subg_stack.h:144:15: warning: useless storage class specifier in empty declaration 144 | extern struct trans_v2_dev; | ^~~~~~~~~~~~ ccache_cc -c -O2 -fno-caller-saves -Wno-implicit-fallthrough -Wno-format-truncation -DMCU_BOARD_H600W -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/staging_dir/target-arm-sigmastar-linux-uclibcgnueabihf/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/sysroot/usr/include -I/home/ronglimin/code_work/mbedtls_test/CAMEOS/platform/../toolchain/ssc37x_sdk/arm-sigmastar-linux-uclibcgnueabihf-9.1.0/arm-sigmastar-linux-uclibcgnueabihf/include -luci -lubox -lblobmsg_json -lubus -lmbedtls -lmbedcrypto -lutplog -g -o subg_trans_v1.o subg_trans_v1.c In file included from subg_trans_v1.h:8, from subg_trans_v1.c:7: subg_stack.h:144:15: warning: useless storage class specifier in empty declaration 144 | extern struct trans_v2_dev; | ^~~~~~~~~~~~ subg_trans_v1.c: In function 'subg_trans_v1_on_recv': subg_trans_v1.c:53:3: warning: 'return' with no value, in function returning non-void 53 | return; | ^~~~~~ subg_trans_v1.c:37:12: note: declared here 37 | static int subg_trans_v1_on_recv(struct sub1g_buf *sgb) 什么报错,跟我做mbedtls有关系吗
最新发布
11-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

One Piece&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值