使用g ++的CUDA 6.5不支持c ++ 11?

时间:2015-01-04 02:42:27

标签: c++ c++11 cuda

我在这里读到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;
}

2 个答案:

答案 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