gem5入门(一)之安装过程

gem5安装踩坑

首先当然是进行安装
先要配置这些依赖环境

sudo apt-get install build-essential 
sudo apt-get install git 
sudo apt-get install m4 
sudo apt-get install scons 
sudo apt-get install zlib1g zlib1g-dev 
sudo apt-get install libprotobuf-dev protobuf-compiler 
sudo apt-get install libprotoc-dev 
sudo apt-get install libgoogle-perftools-dev 
sudo apt-get install python-dev python python-protobuf

然后

scons build/X86/gem5.opt -j4

之后构建成功
在这里踩了很多很多坑
还好爬出来了

gem5找不到python

还有一个问题又换了一台电脑安装gem5遇到报错信息:
Checking Python version… no
Error: Can’t find a working Python installation
但是 python --version 确实是python3没错阿
之后经过很多很多次的冲浪
才分析到是anaconda的问题,gem5好像没法发现anaconda管理下的python
于是先退出

conda deactivate

后再

scons build/X86/gem5.opt -j2

解决问题

中文路径的坑

报错信息:
Unable to cast Python instance of type to C++ type ‘std::__cxx11::basic_string
分析可能是因为gem5用了c++和python,对中文字符串的处理有影响
改完路径就没这个报错了
2. 千万不要用windows做下载中介,不然报错信息会让你哭死
当时找到的gem5的下载链接需要,于是我就先在windows下下载下来传给linux
出现了
/usr/bin/env: ‘python3\r’: No such file or directory的问题
查阅资料,linux中用\n来作为换行符,而windows中使用\r\n作为换行符
系统间文件传输会出现问题

编译gem5命令解释

scons build/X86/gem5.opt -j2
我们想在build/X86目录中构建gem5。由于该目录当前不存在,SCons将查看build_opts来查找x86的默认参数。
在build-opts目录中有许多默认编译选项。这些文件指定最初生成gem5时传递给SCons的参数。我们将使用X86默认值并指定要编译所有CPU模型。您可以查看文件build_opts/X86以查看Scons选项的默认值

usr是unix system resource缩写
/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的

修改python默认版本的命令

update-alternatives --install /usr/bin/python python /usr/bin/python3.8
sudo update-alternatives --install /usr/bin/python python /home/zdy/anaconda3/bin/python3.7 2

update-alternatives --config python

$ update-alternatives --help
用法:update-alternatives [<选项> ...] <命令>
 
命令:
  --install <链接> <名称> <路径> <优先级>
    [--slave <链接> <名称> <路径>] ...
                           在系统中加入一组候选项。
  --remove <名称> <路径><名称> 替换组中去除 <路径> 项。
  --remove-all <名称>      从替换系统中删除 <名称> 替换组。
  --auto <名称><名称> 的主链接切换到自动模式。
  --display <名称>         显示关于 <名称> 替换组的信息。
  --query <名称>           机器可读版的 --display <名称>.
  --list <名称>            列出 <名称> 替换组中所有的可用候选项。
  --get-selections         列出主要候选项名称以及它们的状态。
  --set-selections         从标准输入中读入候选项的状态。
  --config <名称>          列出 <名称> 替换组中的可选项,并就使用其中
                           哪一个,征询用户的意见。
  --set <名称> <路径><路径> 设置为 <名称> 的候选项。
  --all                    对所有可选项一一调用 --config 命令。

你可能感兴趣的:(gem5,bash,linux,开发语言)