zl程序教程

您现在的位置是:首页 >  系统

当前栏目

嵌入式Linux开发,Ubuntu22下交叉编译内核报错: multiple definition of `yylloc‘; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0

Linux嵌入式内核开发 报错 编译 of 交叉
2023-09-14 09:09:34 时间

一、问题描述

嵌入式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/bin/gcc-9 -> x86_64-linux-gnu-gcc-9*
lrwxrwxrwx 1 root root  9  8月  5  2021 /usr/bin/gcc-ar -> gcc-ar-11*
lrwxrwxrwx 1 root root 26  5月  1  2022 /usr/bin/gcc-ar-11 -> x86_64-linux-gnu-gcc-ar