背景:系统Mac OS 10.12.6
已经安装最新版gcc,并替代clang占用的gcc命令。
但brew install icarus-verilog 在./configure中报错,提示
C preprocessor "/lib/cpp" fails sanity check
查了一圈没找到原因。很奇怪。故选择下载资源手动编译。
1.下载Icarus-Verilog 11.0,并解压;
https://sourceforge.net/projects/iverilog/files/iverilog/
2.右击新建位于文件夹的finder窗口,依次输入
./configure
make
进行编译。如果这两个都通过,再输入
make install
即可完成安装。
————————————————————————
结果我的./configure 步骤通过,make步骤跑到一半报错,错误记得是什么bison expecting string,上github查原因,参考网页:https://hub.fastgit.org/steveicarus/iverilog ,(详细阐述了各种环境要求以及步骤,报其他错的也可以仔细看看是哪个地方不合要求。)引用如下:
- bison and flex OSX note: bison 2.3 shipped with MacOS including Catalina generates broken code, but bison 3+ works. We recommend using the Fink project version of bison and flex (finkproject.org), brew version works fine either.
看来是mac自带的老版bison 2.3在作怪。解决方法:安装新版bison:
1.用brew安装新版bison:终止之前的终端。打开新的终端,输入
brew install bison
即安装新版bison。之后添加新版bison的路径:(把3.7.6改成你自己下载的bison版本)
export PATH=/usr/local/Cellar/bison/3.7.6/bin:$PATH
2.重新编译安装:新建位于之前下载Icarus-Verilog 11.0文件夹的finder窗口
再查看bison的版本:
bison --version
看到是你自己新安装的版本就行了。如果还是mac自带的2.3,再在这个窗口添加一遍路径,直到看到bison的版本变成你自己新装的版本。
清除之前的编译文件,不清除直接make还会报错。
make clean
重新编译安装
make
make install
就搞定了因为bison 2.3报错的问题。
如果其他问题报错,仔细看https://hub.fastgit.org/steveicarus/iverilog 检查什么地方不符合安装要求。