摘抄修改自:
作者: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
问题原因
因为gcc的版本比较高,与当前的ubuntu系统不兼容,使用gcc 10.0以上版本就会出现该错误,所以需要降低gcc版本。
查看当前gcc版本:gcc --version
解决方法
- 下载gcc-9
sudo apt install gcc-9
- 下载gcc-9
- 将gcc版本都切换为9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
- 将gcc版本都切换为9
- 查看当前gcc版本
gcc --version
当前gcc版本为9.4.0
- 查看当前gcc版本
- 清除上次生成的编译环境,非常重要
sudo make distclean
- 清除上次生成的编译环境,非常重要
- 重新编译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
暂无评论内容