ubuntu22.04 编译Linux内核出现 multiple definition of `yylloc‘ 问题解决

编程入门 行业动态 更新时间:2024-10-10 01:26:23

ubuntu22.04 编译Linux<a href=https://www.elefans.com/category/jswz/34/1769575.html style=内核出现 multiple definition of `yylloc‘ 问题解决"/>

ubuntu22.04 编译Linux内核出现 multiple definition of `yylloc‘ 问题解决

最近升级到了Ubuntu22.04,在编译linux内核会出现 multiple definition of `yylloc'错误

/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
collect2: error: ld returned 1 exit status
make-4.1[3]: *** [scripts/dtc/dtc] Error 1
scripts/Makefile.host:99: recipe for target 'scripts/dtc/dtc' failed
scripts/Makefile.build:544: recipe for target 'scripts/dtc' failed
make-4.1[2]: *** [scripts/dtc] Error 2

在网上查阅解决方案时发现是由于使用gcc 10.0以上版本就会出现该错误,于是我查看了gcc版本,Ubuntu22.04的gcc版本为11.2.0, 于是我打算在ubuntu22.04上使用gcc-9版本

解决方案

  1. 下载gcc-9与g++-9
    sudo apt install gcc-9 g++-9
  2.  将gcc g++版本都切换为9
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100
  3. 再次查看gcc版本,可以看到版本已经变成9.4.0了
  4.  这时候再次编译linux内核就不会出现multiple definition of `yylloc'问题了

参考:GCC编译器的切换

更多推荐

ubuntu22.04 编译Linux内核出现 multiple definition of `yylloc‘ 问题解决

本文发布于:2024-03-12 10:24:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1731301.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:内核   Linux   definition   multiple   yylloc

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!