使用SCons构建OS镜像失败问题排查及解决(已修复)
SConstruct构建OS镜像时liblto_plugin.so找不到问题的解决
问题背景
学习操作系统开发,使用SConstruct脚本替代Makefile构建OS镜像,工具链为gcc 13.1.0 + binutils 2.39(使用Makefile构建时无问题,系统内置gcc 11.4.0、binutils 2.38),SConstruct代码与教程完全一致,但构建失败。
报错信息
scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... Assembling [src/boot_loader/fst_stg/boot.asm] Linking [build/i686_debug/fst_stg_fat12/fst_stg.bin] i686-elf-gcc: fatal error: '-fuse-linker-plugin', but liblto_plugin.so not found compilation terminated. scons: *** [build/i686_debug/fst_stg_fat12/fst_stg.bin] Error 1 scons: building terminated because of errors.
排查情况
系统为Ubuntu 22.04.3 LTS,通过locate命令确认工具链中存在liblto_plugin.so:
.../tool_chain/gcc-build-13.1.0/gcc/liblto_plugin.so .../tool_chain/gcc-build-13.1.0/lto-plugin/.libs/liblto_plugin.so .../tool_chain/i686-elf/libexec/gcc/i686-elf/13.1.0/liblto_plugin.so
解决方法
更换Linux发行版,从Ubuntu 22.04.3 LTS改为Fedora后,构建成功,问题解决。
内容的提问来源于stack exchange,提问作者j1sk1ss
相关产品推荐
相关产品推荐

