首页 > 解决方案 > 无法在带有 anaconda 的机器上构建 gem5:“lto1:致命错误:字节码流”

问题描述

当我尝试使用命令构建 gem5 时scons build/X86/gem5.opt -j12,我收到一条错误消息说

lto1:致命错误:文件“/home/beihai/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.a”中的字节码流使用 LTO 版本 6.0 而不是预期的 8.1 生成

我认为这可能是错误的 gcc 版本的问题。但我不知道如何解决它。

我的系统是Kubuntu 20.04

通过运行gcc -v,我得到了全局 gcc 版本gcc 版本 9.3.0

通过运行/home/beihai/anaconda/envs/gem5build/bin/x86_64-conda_cos6-linux-gnu-gcc -v,我得到了 anaconda gcc version gcc version 7.3.0 (crosstoll-NG 1.23.0.449-a04d0)

请告诉我如何解决这个问题。

标签: gccanacondagem5

解决方案


我遇到了几乎相同的问题,除了我说“LTO 版本 6.0 而不是预期的 6.2”。

我搜索了 LTO 兼容性问题的通用解决方案,并从以下链接中获得了一些灵感:https ://github.com/rust-lang/rust/issues/57176 从上面的链接中快速获取:“我已经研究过这是怎么回事与python相关,发现该错误仅发生在通过anaconda安装的python上。”

所以我删除了我的整个 anaconda 软件包,并删除了 Gem5 中的构建目录,并重新运行 scon 命令并添加了“--force-lto”参数,现在安装成功了。希望它也能解决你的问题。

我使用的命令:“scons --force-lto build/X86/gem5.opt -j6”

我的设置是: Ubuntu 18 withe kernel 4.15.0-134-generic g++ --version = g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0


推荐阅读