当我编译包含设计C ++ 11的以下代码时,我得到错误 - 它不能编译。我试过不同的旗帜,但我还没有找到解决方案。
我的设置:CUDA 6.5,gcc 4.4.7 我无法更改设置。 我怎么能继续这项工作?
#include <stdio.h>
#include <vector>
#include "KD_tree.h"
#include "KD_tree.cpp"
#include <iostream>
#include <algorithm>
#include <cmath>
#include <future>
#define MYDEVICE 0
using namespace std;
int main()
{
//do something.....
cudaDeviceProp devProp;
cudaGetDeviceProperties(&devProp, MYDEVICE);
printDevProp(devProp);
int max_threads = devProp.warpSize;
//do something else ...
return 0;
}
我尝试使用不同的标志进行编译:
nvcc -std=c++11 cudaMain.cu KD_tree.cpp -arch=sm_20 -o tree.out
In file included from cudaMain.cu:14:
simple_kd_tree.h:12:19: warning: extra tokens at end of #include directive
cudaMain.cu:19:18: error: future: No such file or directory
nvcc --std=c++11 cudaMain.cu KD_tree.cpp -arch=sm_20 -o tree.out
In file included from cudaMain.cu:14:
simple_kd_tree.h:12:19: warning: extra tokens at end of #include directive
cudaMain.cu:19:18: error: future: No such file or directory
nvcc --std=c++11 cudaMain.cu KD_tree.cpp -arch=sm_20 -c -o tree.out
nvcc fatal : A single input file is required for a non-link phase when an outputfile is specified
我是否必须拆分c ++部分?我该怎么做呢?
答案 0 :(得分:5)
在CUDA 7.0中正式添加了C ++ 11支持。并且您需要GCC 4.7或更高版本才能获得C ++ 11支持。 详情请见http://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#cuda-compiler-new-features