【发布时间】:2015-01-05 02:09:13
【问题描述】:
我在这里读到 CUDA 6.5 已开始支持 C++11:
https://groups.google.com/forum/#!topic/thrust-users/R37GIkMG4tk
但是当我编译下面的示例代码时,我得到了
$ nvcc -std=c++11 cu-gcc11.cu -o 测试
nvcc 警告:配置的主机编译器不支持 -c++11 标志。标志将被忽略。
cu-gcc11.cu(7):错误:缺少显式类型(假定为“int”)
我的设置:CUDA 6.5、g++ 4.5、ubuntu 12.04
代码:
#include <cuda.h>
#include <iostream>
__host__ void test() {
float a = 12.;
double b = 3.;
auto c = a * b;
std::cout << c << std::endl;
}
int main()
{
test();
return 0;
}
【问题讨论】:
-
升级你的 gcc 可能吗? gcc4.5 已经很老了。
-
对我来说编译得很好。 (CUDA 6.5.12,
g++-4.8.2,Ubuntu 12.04)。 -
大家好,我知道 4.5 已经过时了。事实上,我在这里有 gcc-4.6,但我创建了一个指向 4.5 的符号链接。 CUDA doc中不是说nvcc不支持任何> 4.5的东西吗?
-
“CUDA doc”中没有说明 nvcc 不支持任何 > 4.5 的东西。一般来说,对于特定的 cuda 版本,支持的配置列在getting started guide 中(包括每个配置/发行版的 gcc 版本支持)。