[英]Switch between different GCC versions
我最近构建了一个旧版本的GCC并将其安装在我的主目录(spec . ~/local/gcc-5.3.0
)中。 但是,我只需要这个编译器用于CUDA项目,并且将在其余时间使用系统编译器(GCC 6.2.1)。 所以,我想我需要找到一种在需要时和在需要时切换它们的方法,并且还可以更改库并适当地包含路径。
我知道update-alternatives
是这样做的一种方法,但它似乎需要设置root权限,这是我没有的。
下一个最好的事情可能是在.bashrc
中编写一个shell函数来确保以下内容:
每个呼叫在系统和本地gcc之间切换
无论何时进行切换,它都会调整路径,以便在选择本地gcc时,它首先查找自己安装的头文件和库,然后再查看/usr/local/include
或usr/local/lib
等系统路径。 之前的回答表明修改LD_LIBRARY_PATH
应该足够了,因为GCC安装“知道”它自己的头文件和静态库的位置(我不确定它是否正确,我以为我可能需要修改CPATH
等)。
以上是实现这一目标的最佳方法吗? 如果是这样,我在实现这样的功能时应该设置哪些路径?
以上是实现这一目标的最佳方法吗? 如果是这样,我在实现这样的功能时应该设置哪些路径?
正如其他人所指出的, PATH
和LD_LIBRARY_PATH
是强制性的。 您也可以更新MANPATH
以获得完整性。
而不是重新发明.bashrc
的轮子我建议使用一些鲜为人知但非常方便和模块化的环境模块 ,专为此特定目的而设计。 你可以使用它们(一旦你为gcc / 3.1.1设置配置):
$ module load gcc/3.1.1
$ which gcc
/usr/local/gcc/3.1.1/linux/bin/gcc
$ module unload gcc
$ which gcc
gcc not found
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.