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

问题描述 投票:0回答:4

问题是关于版本的特定组合,但具有更广泛的相关性。

我刚刚从 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),并尝试使用此处建议的 symlinks-in-

/usr/local/cuda/bin
解决方案:

CUDA 与我的 gcc 版本不兼容

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

gcc cuda compatibility
4个回答
20
投票

此解决方案与 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/g++-4.7  # rest of the command line here

如果您使用 CMake 进行构建,请在向您的

CMakeLists.txt
中查找 CUDA 之前添加适当的设置,例如:

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

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

注意: 某些 Linux(或其他操作系统)发行版没有用于多个版本的 gcc 的软件包(在操作系统发行版的同一版本中)。我建议不要尝试在旧版本上安装发行版的另一个版本的软件包,而应考虑构建 gcc。这并不完全是微不足道的,但它相当可行 - 当然,如果您没有机器的根访问权限,这是您唯一的选择。


2
投票

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

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


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)


1
投票

很多时候,当你遇到这个问题时,你会发现 CUDA 已经有了 较新的版本。例如,问题的原始表述是关于 CUDA 6 和 GCC 4.9; CUDA 7 支持 GCC 4.9。 CUDA 8 支持 GCC 5.x。等等。

© www.soinside.com 2019 - 2024. All rights reserved.