Linux不使用与$PATH中相同的cc程序

Linux不使用与$PATH中相同的cc程序,linux,gcc,Linux,Gcc,我将另一个版本的gcc(9.2.0)安装到Linux机器中的一个非默认文件夹中,并将$PATH指向该新位置gcc和g++正在工作,但是没有cc所以我制作了一个符号链接: ln -s $HOME/.local/bin/gcc $HOME/.local/bin/cc 我想,cc现在指向正确的一个 $ ~/.local/bin/cc --version cc (GCC) 9.2.0 $ which cc ~/.local/bin/cc 但是没有完整路径,cc仍然使用旧版本 $ cc --vers

我将另一个版本的gcc(9.2.0)安装到Linux机器中的一个非默认文件夹中,并将$PATH指向该新位置
gcc
g++
正在工作,但是没有
cc
所以我制作了一个符号链接:

ln -s $HOME/.local/bin/gcc $HOME/.local/bin/cc
我想,
cc
现在指向正确的一个

$ ~/.local/bin/cc --version
cc (GCC) 9.2.0

$ which cc
~/.local/bin/cc
但是没有完整路径,
cc
仍然使用旧版本

$ cc --version
cc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)

我不明白这怎么会发生。非常感谢您的帮助。

并将$PATH指向该新位置
-您是否已将该位置预先设置为先前的$PATH值?很明显。您的发行版(无论是什么,看起来都像红帽)附带了GCC4.8.5。然后,您(或其他人)在
/usr/local
中安装了GCC 9.2.0(在构建GCC的过程中故意或忘记了
--prefixe=/usr
选项)。因此,您安装了两个版本的编译器。在
.bashrc
中,您可以将别名设置为
alias cc='/path/to/gcc/you/want'
,然后
cc
将适合您的环境。您也可以从命令行导出cc=~/.local/bin/cc
~/.local/bin/cc
本身也是一个软链接。@ArkadiuszDrabczyk
哪个cc
命令的输出是新位置,因此我认为$PATH是正确的。更具体地说,我在
~/.bashrc
@DavidC.Rankin中有
导出路径=~/.local/bin:$PATH
,是的,我就是这么做的。我有意安装到$HOME/.local,但问题是为什么
cc--version
是4.8.5,而
哪个cc
~/.local/bin/cc
~/.local/bin/cc--version
是9.2.0,因为默认路径包括
$HOME
,而不是
$HOME/.local
。你必须调整一下。检查echo$PATH以确认您拥有的内容。