我已经为这个问题纠结了好几个星期了,断断续续地工作。我在Windows上运行Ubuntu。我还安装了OpenFOAM来分析CFD模拟。我的问题是在命令提示符下调用的gcc默认为OpenFOAM。
$ gcc --version
gcc (OpenFOAM) 6.3.0
我需要为我正在做的其他事情安装更新的库。我设法安装了所有的库,但是当我在命令提示符下运行程序时,linux仍然在寻找gcc的OpenFOAM版本(它看不到库)。我正在调用一个shell脚本,它反过来调用其他程序,所以我不能确定一种方法来直接调用所需gcc版本的完整路径。
我发现bash gcc命令实际上链接到三个版本的gcc:
$ type -a gcc
gcc is /opt/OpenFOAM/OpenFOAM-v2012/ThirdParty/platforms/linux64/gcc-6.3.0/bin/gcc
gcc is /usr/bin/gcc
gcc is /bin/gcc
这让我相信shell脚本会转到第一个,而忽略后面的两个。我如何让它转到第二个?也就是说,这样终端将返回
gcc is /usr/bin/gcc
gcc is /bin/gcc
gcc is /opt/OpenFOAM/OpenFOAM-v2012/ThirdParty/platforms/linux64/gcc-6.3.0/bin/gcc
这应该会产生被调用的gcc的正确版本以及我需要在运行时引用的已安装库。
$ which gcc
/opt/OpenFOAM/OpenFOAM-v2012/ThirdParty/platforms/linux64/gcc-6.3.0/bin/gcc
我原以为这会返回/usr/bin/gcc
。
我尝试将/bin/gcc/
附加到路径变量的前面:
$ export PATH = /usr/bin/:$PATH
没有成功。(编辑了语法)
我还研究了如何在Ubuntu上安装多个版本的gcc,并发现有一个命令应该允许我做我正在尝试做的事情,但它不起作用:
$ sudo update-alternatives --config gcc
update-alternatives: error: no alternatives for gcc
我希望能够选择哪个版本的gcc被称为。
1条答案
按热度按时间2lpgd9681#
感谢RICI的意见:$ export路径=/usr/bin:$路径
将“/usr/bin”前置到路径变量的所有OpenFOAM内容之前。
$类型-返回的$路径gcc是/usr/bin/gcc是/opt/OpenFOAM/OpenFOAM-v2012/第三方/平台/linux 64/gcc-6.3.0/bin/gcc是/usr/bin/gcc是/bin/gcc
这应该已经解决了我的问题,除了某些原因它仍然在OpenFOAM目录中寻找另一个库。至于最初的问题,问题已经解决了。