一、问题

在使用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版本为11.2.0,所以我们要把gcc版本降到9

三、解决方法

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

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

  3. 查看当前gcc版本
    gcc --version

    当前gcc版本为9.4.0

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

  5. 重新编译Linux内核


• 由 Leung 写于 2022 年 9 月 11 日

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

Logo

更多推荐