先说结论:系统换成Ubuntu20.04,编译一次通过
由于我虚拟机没怎么多想,直接安装的Ubuntu22.04,在学习前面课程的时候,因为有一点点Linux基础,前面几乎没有什么问题。
到了驱动学习的时候,发现给的源码直接无法编译,首先就是multiple definition of `yylloc‘ 重定义问题,参考以下链接,排除了这个错误。ubuntu22.04 编译Linux内核出现 multiple definition of `yylloc‘ 问题解决_/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x-CSDN博客
但是还是不行,后面又有新的报错
这个错误我查了之后得到的答案是arm-none-eabi-gcc的版本太高导致的,有一个博客说添加一个什么参数确实可能可以解决,但是我没找到哪边用到,另外一个方法是降版本,多低我不知道,但是明显版本7.3.1还是不行的
在下面附上切换指定版本arm-none-eabi-gcc的方法:
Ubuntu中gcc-arm-none-eabi的安装、移除和版本切换_arm-none-eabi-gcc-CSDN博客
最后实在没找到什么方法了,就想着换个系统,结果应该是成功了
最后附上几个命令,祝大家学习顺利: