gcc降级操作

CUDA使用中的问题

Posted by John Mactavish on November 23, 2019

问题导入

使用 CUDA nvcc 编译时报出了

#error – unsupported GNU version! gcc versions later than 6 are not supported!

这样的错误,是因为 gcc 版本太高,不兼容。查看一下自己的 gcc 版本:

$ gcc –version gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0

值得注意的是,我使用的 CUDA 版本是 9.1 ,此时不支持版本号大于 6 的 gcc ,而我在网上发现似乎 CUDA 版本 8 不支持版本号大于 5 的 gcc 。所以应当以编译时 nvcc 的具体报错信息为准,以确定要降下的 gcc 版本。

问题解决方法

首先下载安装老版本的 gcc:

$ sudo apt install gcc-5

查看安装是否成功,并确定可执行程序名:

ls /usr/bin/gcc* /usr/bin/gcc
/usr/bin/gcc-5
/usr/bin/gcc-6
/usr/bin/gcc-7

我们找到了 /usr/bin/gcc-5 ,当然本来安装的 gcc-7 仍然存在。然后设置 gcc 默认版本:

$ sudo update-alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-5 100 update-alternatives: 使用 /usr/bin/gcc-5 来在自动模式中提供 /usr/bin/gcc (gcc)

命令最后的数字是优先级,100最大,我们无所谓,就设置最大。接下来查看一下设置结果:

$ sudo update-alternatives –config gcc 链接组 gcc (提供 /usr/bin/gcc)中只有一个候选项:/usr/bin/gcc-5 无需配置。

最后,再查看一下 gcc 版本:

$ gcc -version gcc (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010

同时 nvcc 的编译也可以通过了。

顺带一提,不需要这个设置时可以这样删除设置:

$ sudo update-alternatives –remove gcc /usr/bin/gcc-5


最后附上Github:https://github.com/gonearewe