g++ 的可执行文件使用错误路径

问题描述 投票:0回答:1

我正在运行一个名为 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++
c++ gcc makefile centos verilator
1个回答
0
投票

这些路径是从编译时存在的设置复制的

AR = @AR@ CXX = @CXX@ LINK = @CXX@ OBJCACHE ?= @OBJCACHE@ PERL = @PERL@ PYTHON3 = @PYTHON3@
您需要编辑已安装的 

include/verilated.mk

 文件并将硬编码路径恢复为通用路径(例如 
CXX=g++
,以便您可以使用基于路径的查找)或将其更改为使用 
?=
,这样就可以覆盖它们来自环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.