系统信息
$ cat /etc/centos-release
CentOS release 6.10 (Final)
编译器信息
$ gcc -v
gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
安装 verilator
verilator 官方只提供了 Ubuntu 的包,并且使用包管理器安装的 verilator 好像没有它的教程里的 examples。这个最好是编译安装。官网有教程:
https://www.veripool.org/projects/verilator/wiki/Installing
(Recommend use the section 3.5.3.Install into a Specific Path
)
GCC 4.4.7 不支持 C++11,因此报错:
configure: error: the g++ compiler appears to not support C++11.
然后我编译安装 gcc-4.8.5,虽然成功了,但是为了不破坏系统原有的 gcc,我用了 prefix 参数,然而我并不会配置 GCC 的编译环境,反正直接拿编译生成的 gcc-4.8.5 去编译 verilator 没有成功。
在此再次提醒自己,尽量不要编译安装软件,费时又费力!
对于 CentOS 软件源老旧的问题,软件行业一定会有较为便捷的解决办法,我查了查资料,果然如此。
再根据这篇博客:
启用 SCL 源
$ yum install centos-release-scl-rh centos-release-scl
安装 devtoolset-7-*
先检索:
$ yum search gcc
...
devtoolset-7-gcc.x86_64 : GCC version 7
devtoolset-7-gcc-c++.x86_64 : C++ support for GCC version 7
...
然后安装:
$ yum install devtoolset-7-gcc devtoolset-7-gcc-c++
查看已安装的 SCL 软件:
$ scl -l
...
devtoolset-7
...
使用 devtoolset-7 安装 Verilator
$ scl enable devtoolset-7
检查 GCC 版本
$ gcc -v
...
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
然后跟着 Verilator 官网的教程编译安装 Verilator。最后提示运行 make test
,报错:
Can't locate Time/HiRes.pm in @INC
都编译完了应该不是编译的问题,应该是系统缺包,不妨挑一个有辨识度的关键词检索:
$ yum search HiRes
...
perl-Time-HiRes.x86_64 : High resolution alarm, sleep, gettimeofday, interval timers
...
$ yum install perl-Time-HiRes
然后 make test
就可以通过了。