> For the complete documentation index, see [llms.txt](https://kerasnoone.gitbook.io/garnet/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kerasnoone.gitbook.io/garnet/gong-cheng-zhan/linux/xi-tong-an-zhuang-pei-zhi/an-zhuang-zhi-ding-ban-ben-gcc.md).

# 安装指定版本gcc

## 为什么要安装指定版本gcc

很多环境, 软件的安装配置, 依赖的gcc版本不同. 以安装cuda为例, cuda10.0版本要求gcc的版本不能高于7. 然而某些软件需要的gcc版本又可能高于7才可以运行, 因此, 多版本的gcc同时存在, 是一个常见的需求.

另外使用`sudo apt install gcc g++`安装默认版本, 我们无法知晓安装的版本, 不如在了解需要的gcc版本限制之后, 直接指定版本安装.

## 如何安装

配置gcc环境, 要安装gcc和g++两个环境.

首先使用`sudo apt-get install gcc-* g++-*`安装两个包, 其中`*`代表的是指定的版本, 例如:

`sudo apt-get install gcc-7 g++-7`

在安装之后, 输入`gcc`还是会显示找不到, 接下来就是要配置环境:

```
sudo mkdir /usr/local/gcc7
cd /usr/local/gcc7
ln -sf /usr/bin/gcc-7 cc
ln -sf /usr/bin/gcc-7 gcc
ln -sf /usr/bin/g++-7 g++
ln -sf /usr/bin/cpp-7 cpp
ln -sf /usr/lib/gcc/x86_64-linux-gnu/7/cc1 .
ln -sf /usr/lib/gcc/x86_64-linux-gnu/7/cc1plus .
```

配置完上面, 最好要把相应的路径更新到`Path`变量当中去:

`export PATH=/usr/local/gcc7:$PATH`

使用`root`账户中在`/etc/profile`中加入上面的代码, 然后`source /etc/profile`激活, 再在自己的账户中的`~/.bashrc`中加入上面的代码, 最后`source ~/.bashrc`激活.

然后输入`gcc`就可以看到指令已经生效了.

## 参考资料

* [解决cuda10.0 gcc versions later than 7 are not supported的方法](https://my.oschina.net/u/586849/blog/3216207)
