我在这里读到CUDA 6.5已经开始支持C ++ 11:
https://groups.google.com/forum/#!topic/thrust-users/R37GIkMG4tk
但是当我编译下面的示例代码时,我得到了
$ nvcc -std = c ++ 11 cu-gcc11.cu -o test
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;
}
答案 0 :(得分:5)
nvcc中的C ++ 11支持目前是实验性的。为了正确使用它,您需要适当的配置。这在AFAIK的任何地方都没有记录,但你应该用Fedora 20或Ubuntu 14.04获得好的结果,两者都是cuda 6.5支持的配置,包括GCC 4.8.x.
在您的情况下,您的GCC版本太旧了。
答案 1 :(得分:1)
我不认为GCC 4.5中提供-std=c++11
。试试-std=c++0x
。