【发布时间】:2012-01-25 18:46:01
【问题描述】:
我是 Cuda 的新手,我正在尝试编译这个简单的 test_1.cu 文件:
#include <stdio.h>
__global__ void kernel(void)
{
}
int main (void)
{
kernel<<<1,1>>>();
printf( "Hello, World!\n");
return 0;
}
使用这个:nvcc test_1.cu
我得到的输出是:
In file included from /usr/local/cuda/bin/../include/cuda_runtime.h:59:0,
from <command-line>:0:
/usr/local/cuda/bin/../include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.5 and up are not supported!
我的 gcc --version:
gcc (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
我怎样才能安装第二个版本的 gcc (4.4 -) 和 4.6 而不会搞砸一切?
我发现了这个老话题:
CUDA incompatible with my gcc version
答案是:
CUDA 不支持 gcc 4.5 和 4.6 - 代码无法编译和 工具链的其余部分,包括 cuda-gdb,将无法正常工作。 你不能使用它们,而且限制是不可协商的。
您唯一的解决方案是安装 gcc 4.4 版本作为第二个 编译器(大多数发行版都允许这样做)。有一个选项 nvcc --compiler-bindir 可用于指向替代方案 编译器。创建一个本地目录并生成指向该目录的符号链接 支持 gcc 版本的可执行文件。将该本地目录传递给 nvcc 通过 --compiler-bindir 选项,你应该能够编译 CUDA 代码而不影响系统的其余部分。
但我不知道该怎么做
【问题讨论】:
-
不完全正确。 gcc 4.5 工作得很好。它要求您从头文件中注释掉生成错误的代码。 gcc 4.6 是另一个 cuda 4.0 不支持的问题。但是我希望新的 cuda 4.1(将于 1 月初发布)将与 4.6 兼容
标签: linux gcc ubuntu cuda nvidia