我最近构建了一个旧版本的GCC并将其安装在我的主目录下(具体来说是
我知道
接下来最好的方法可能是在
〜/local/gcc-5.3.0
)。然而,我只需要这个编译器用于CUDA项目,并且其余时间将使用系统编译器(GCC 6.2.1)。因此,我想我需要找到一种方法,在需要时在它们之间切换,并以适当的方式更改库和包含路径。我知道
update-alternatives
是一种实现这一点的方法,但似乎需要设置root权限,而我没有这个权限。接下来最好的方法可能是在
.bashrc
中编写一个shell函数,确保以下内容:
每次调用都会在系统和本地gcc之间切换
无论何时进行切换,它都会调整路径,以便在选择本地gcc时,它首先查找由其自身安装的头文件和库,然后再查找系统路径,例如
/usr/local/include
或usr/local/lib
。之前的answer建议修改LD_LIBRARY_PATH
应该就足够了,因为GCC安装程序“知道”其自己的头文件和静态库在哪里(我不确定是否正确,我在想我可能需要修改CPATH
等)。
上述方式是实现此目标的最佳方法吗?如果是,请问在实现此功能时应设置哪些路径?
bin
目录添加到PATH
中。如果不涉及包含目录,修改LD_LIBRARY_PATH
是否也是必要的呢? - oczkoisse