我正在运行一个名为 verilator 的程序。
我运行以下命令
verilator --build -Wall --trace -cc alu.sv
上述命令需要c++编译器才能使用。所以上面的命令依次尝试编译/生成 c++ 目标文件,这使得它调用 g++ 编译器。
我收到以下错误
/homes/tinebp/tools/gnu/bin/g++-10 -I. -MMD -I/home/verilator/include -I/home/verilator/include/vltstd -DVM_COVERAGE=0 -DVM_SC=0 -DVM_TRACE=1 -DVM_TRACE_FST=0 -DVM_TRACE_VCD=1 -faligned-new -fcf-protection=none -Wno-bool-operation -Wno-sign-compare -Wno-uninitialized -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-unused-variable -Wno-shadow -std=gnu++14 -Os -c -o Valu__ALL.o Valu__ALL.cpp
make: /homes/tinebp/tools/gnu/bin/g++-10: Command not found
make: *** [Valu__ALL.o] Error 127
路径
/homes/tinebp/tools/gnu/bin/g++-10
不存在。我不明白为什么它使用这条路径??
我没有 Makefile,因此 make cmd 使用隐式规则。我不知道它从哪里获取编译器路径。以下是编译器路径
我手动检查并设置路径,但仍然出现错误。这是 C++ 编译器路径。
$ echo $CXX
/package/gcc/11.2.0/bin/g++
$ which gcc
/package/gcc/11.2.0/bin/gcc
$ which g++
/package/gcc/11.2.0/bin/g++
$ echo $CC
g++
这些路径是从编译时存在的设置复制的:
AR = @AR@
CXX = @CXX@
LINK = @CXX@
OBJCACHE ?= @OBJCACHE@
PERL = @PERL@
PYTHON3 = @PYTHON3@
您需要编辑已安装的 include/verilated.mk
文件并将硬编码路径恢复为通用路径(例如
CXX=g++
,以便您可以使用基于路径的查找)或将其更改为使用
?=
,这样就可以覆盖它们来自环境变量。