问题描述
我有一台具有两个gem5存储库实例的机器:一个我保持最新状态,而另一个使用的是我无法更新的旧版本。
我正在使用Ubuntu 16.04,当前的gem5版本已弃用python 2.7。我正在推迟升级操作系统,并使用一些解决方法(还原提交scons: Set the minimum scons version to 3.0
,并手动将EM_RISCV
添加到src/base/loader/elf_object.cc
);但是,最近情况变得凌乱,因此为了使用SCons 3和python3,我不得不这样做。
在尝试了Ubuntu 18.04和20.04之后,由于在某些python类中使用了元类,我仍然无法编译。
但是,真正的问题很明显;即使我安装了python3(在/usr/bin/
中),也找不到python3-config:
Info: Using Python config: python2.7-config
如何在同一台计算机上同时使用python 2.7和python 3来编译不同版本的gem5?
解决方法
如果SCons找不到python3-config,请手动覆盖PYTHON_CONFIG及其位置,并设置适当的环境。
alias scons2="/usr/bin/env python2.7 $(which scons) PYTHON_CONFIG=$(which python2.7-config)"
alias scons3="/usr/bin/env python3 $(which scons) PYTHON_CONFIG=$(which python3-config)"
然后,编译更新的存储库:
scons3 -j5 ./build/ARM/gem5.opt
要编译需要python 2.7的版本:
scons2 -j5 ./build/ARM/gem5.opt