CUDA版本X抱怨不支持gcc版本Y - 该怎么办?

时间:2015-01-18 12:42:44

标签: gcc cuda compatibility

问题是关于版本的特定组合,但更一般地说是相关的。

我刚从Kubuntu 12.04升级到14.04。现在,当我想编译CUDA代码(使用CUDA 6.5)时,我得到:

#error -- unsupported GNU version! gcc 4.9 and up are not supported!

我安装了gcc-4.8(和4.7),并尝试使用此处建议的符号链接 - { - 1}}解决方案:

CUDA incompatible with my gcc version

但这不起作用。我该怎么办?

4 个答案:

答案 0 :(得分:19)

此解决方案与CUDA和GCC版本的多种组合相关。


您可以告诉CUDA的nvcc使用特定版本的gcc。因此,假设您希望gcc 4.7与CUDA 6一起使用。您运行:

sudo apt-get install gcc-4.7 g++-4.7

然后将以下开关添加到nvcc命令行:

nvcc --compiler-bindir /usr/bin/gcc-4.7  # rest of the command line here

如果您使用CMake构建,请在向CMakeLists.txt寻找CUDA之前添加适当的设置,例如:

set(CUDA_HOST_COMPILER /usr/bin/gcc-4.7)  # -> ADD THIS LINE <-
find_package(CUDA)

此外,似乎clang也可以编译CUDA,也许这值得尝试(尽管你必须适当地构建它)。

注意:某些Linux(或其他操作系统)发行版没有多个版本的gcc的软件包(在OS发行版的同一版本中)。我建议不要尝试从旧版本的另一个版本的发行版安装包,并考虑构建gcc。这并非完全无足轻重,但它是quite doable - 当然,如果您没有root权限,那么这是您唯一的选择。

答案 1 :(得分:2)

切换回支持的配置。它们列在任何最近的CUDA发行版的入门文档中。

对于您目前列出的特定配置,您可能会更好地使用CUDA 7 RC,现在可供注册开发人员使用。

答案 2 :(得分:1)

在您遇到此问题时,您经常会发现CUDA已经newer releases。例如,问题的原始表述是关于CUDA 6和GCC 4.9; CUDA 7支持GCC 4.9。 CUDA 8支持GCC 5.x.等等。

答案 3 :(得分:1)

我在使用CUDA Toolkit 7.5和gcc 5.2.1时遇到了类似的问题。

我确实修改了host_config.h中的/usr/local/cuda/include/文件:

只需删除检查gcc版本的行。它确实解决了我的问题。

致Darren Garvey(https://groups.google.com/forum/#!topic/torch7/WaNmWZqMnzw