mips平台编译rtl8822cs驱动报错问题

在JZ4760平台,使用Linux3.10内核尝试编译rtl8822cs驱动时遇到重复定义错误。经过排查,发现是extern修饰的内联函数导致的问题。将extern改为static后,编译成功。推测问题可能源于不同工具链对extern的处理差异,具体原理待进一步研究。

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

1、平台:

JZ4760+Linux 3.10

2、问题:

将rtl8822cs驱动编译进内核时,出现重复定义的错误,报错信息部分截图如下:
在这里插入图片描述
但在代码中,并没有发现有重复定义,内核其他地方也没有定义。

3、解决方法

后来发现代码中这几个报错的函数都是由 extern 修饰的:
在这里插入图片描述
将报重复定义的三个内联函数的extern改成static,之后编译通过。

这里带有关键字extern,表示该函数会提供给外部文件使用。这么看好像没啥问题,同时也在海思平台使用相关的交叉编译工具链编译,没出现问题。但是mips的工具链编译则出现问题,推测可能是不同的工具链对 extern 的处理不同导致的。

这里也不是很懂原理,先记录下来,后续弄明白了再来更新。有大佬懂的也望不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值