gcc - CUDA 版本 X 提示不支持 gcc 版本 Y - 该怎么办?

标签 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),并尝试使用 symlinks-in- /usr/local/cuda/bin这里建议的解决方案:

CUDA incompatible with my gcc version

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

最佳答案

此解决方案与 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 版本的软件包(在操作系统发行版的同一版本中)。我建议不要尝试在旧版本上安装另一个发行版的软件包,而是考虑构建 gcc。这并非微不足道,但它是 quite doable - 当然,如果您没有对机器的 root 访问权限,这是您唯一的选择。

关于gcc - CUDA 版本 X 提示不支持 gcc 版本 Y - 该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009785/

相关文章:

c++ - c\c++ - 以 union 作为参数以满足特定要求的函数

css - 哪些操作系统包含(即默认安装)哪些字体?

c++ - 是否有针对 CUDA-GPU 或 MPI-CPU+CUDA-GPU 的基准测试?

用于 mex 文件的 cuda nvprof

c - 为什么 gcc 讨厌我的简单 makefile?

Linux C 和 C++ : what else should I be logging when handling signals like SIGSEGV?

c++ - CUDA:cudaMallocManaged 是否处理退出?

python - 如何找出我的代码兼容的所有以前版本的 python

linux - 如何解决 gcc linux 中的多重定义错误?

我可以使用 GCC 编译一个自动要求管理员权限的 C 程序吗?