Ubuntu 22.04编译Linux内核提示错误multiple definition of `yylloc’

摘抄修改自:
作者:Leung_ManWah
链接:https://www.jianshu.com/p/8205095e50cd

报错信息

在使用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

图片[1]-Ubuntu 22.04编译Linux内核提示错误multiple definition of `yylloc’-天煜博客

问题原因

因为gcc的版本比较高,与当前的ubuntu系统不兼容,使用gcc 10.0以上版本就会出现该错误,所以需要降低gcc版本。

查看当前gcc版本:
gcc --version

图片[2]-Ubuntu 22.04编译Linux内核提示错误multiple definition of `yylloc’-天煜博客

解决方法

    1. 下载gcc-9
      sudo apt install gcc-9

    1. 将gcc版本都切换为9
      sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100

    1. 查看当前gcc版本
      gcc --version
      当前gcc版本为9.4.0

    1. 清除上次生成的编译环境,非常重要
      sudo make distclean

    1. 重新编译Linux内核

补充内容

为了方便切换gcc版本 将原有的gcc11通过下面的命令切换以下优先级

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 1

如果需要编译内核就将gcc-9的优先级提升到2

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 2
编译完成之后再次设置为0

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 0

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容