ubuntu22.04 编译Linux内核出现 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版本
解决方案
- 下载gcc-9与g++-9
sudo apt install gcc-9 g++-9
- 将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
- 再次查看gcc版本,可以看到版本已经变成9.4.0了
- 这时候再次编译linux内核就不会出现multiple definition of `yylloc'问题了
参考:GCC编译器的切换
更多推荐
已为社区贡献2条内容
所有评论(0)