一、问题
在使用Ubuntu22.04系统时,编译Linux内核出现错误scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
二、原因
因为gcc的版本比较高,与当前的ubuntu系统不兼容,使用gcc 10.0以上版本就会出现该错误,所以需要降低gcc版本。
查看当前gcc版本:
gcc --version
当前gcc版本为11.2.0,所以我们要把gcc版本降到9
三、解决方法
下载gcc-9
sudo apt install gcc-9
将gcc版本都切换为9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
-
查看当前gcc版本
gcc --version
当前gcc版本为9.4.0 清除上次生成的编译环境,非常重要
sudo make distclean
重新编译Linux内核
• 由 Leung 写于 2022 年 9 月 11 日
• 参考:ubuntu22.04 编译Linux内核出现 multiple definition of `yylloc‘ 问题解决