1、平台:
JZ4760+Linux 3.10
2、问题:
将rtl8822cs驱动编译进内核时,出现重复定义的错误,报错信息部分截图如下:
但在代码中,并没有发现有重复定义,内核其他地方也没有定义。
3、解决方法
后来发现代码中这几个报错的函数都是由 extern 修饰的:
将报重复定义的三个内联函数的extern改成static,之后编译通过。
这里带有关键字extern,表示该函数会提供给外部文件使用。这么看好像没啥问题,同时也在海思平台使用相关的交叉编译工具链编译,没出现问题。但是mips的工具链编译则出现问题,推测可能是不同的工具链对 extern 的处理不同导致的。
这里也不是很懂原理,先记录下来,后续弄明白了再来更新。有大佬懂的也望不吝赐教。