一、问题描述
嵌入式Linux开发,Ubuntu22下交叉编译内核报错:
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
二、问题分析
gcc的版本比较高。在Ubuntu22.04中,gcc版本为11.0以上,所以需要降低gcc版本。
三、解决方案
1、方案一(优选)
安装gcc-9
sudo apt-get install gcc-9 -y
查看gcc
ms@ms-virtual-machine:~$ ll /usr/bin/gcc*
lrwxrwxrwx 1 root root 6 8月 5 2021 /usr/bin/gcc -> gcc-11*
lrwxrwxrwx 1 root root 23 5月 1 2022 /usr/bin/gcc-11 -> x86_64-linux-gnu-gcc-11*
lrwxrwxrwx 1 root root 22 7月 19 18:50 /usr