Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CUDA和Eclipse:我怎样才能告诉Eclipse这一点<<&书信电报;(或>;>;)是语法的一部分吗?_C++_Eclipse_Cuda - Fatal编程技术网

C++ CUDA和Eclipse:我怎样才能告诉Eclipse这一点<<&书信电报;(或>;>;)是语法的一部分吗?

C++ CUDA和Eclipse:我怎样才能告诉Eclipse这一点<<&书信电报;(或>;>;)是语法的一部分吗?,c++,eclipse,cuda,C++,Eclipse,Cuda,到目前为止,我发现如果定义了\uu CDT\u PARSER\uu,就可以通过定义它们来防止Eclipse抱怨专有的CUDA关键字。下面的代码防止Eclipse抱怨大多数CUDA关键字 // Prevent eclipse from bitching about unknown keywords #ifdef __CDT_PARSER__ #define __global__ #define __device__ #define __host__ #define __shared__ #endi

到目前为止,我发现如果定义了
\uu CDT\u PARSER\uu
,就可以通过定义它们来防止Eclipse抱怨专有的CUDA关键字。下面的代码防止Eclipse抱怨大多数CUDA关键字

// Prevent eclipse from bitching about unknown keywords
#ifdef __CDT_PARSER__
#define __global__
#define __device__
#define __host__
#define __shared__
#endif

然而,这不适用于用于配置内核启动的括号,因为我的内核通常有很长的参数列表,这很烦人。有什么想法吗?

这里有一个可以与Eclipse CDT、Visual Studio或Qt Creator一起使用的解决方案这是我的解决方案:

#if (defined __CDT_PARSER__) || (defined __INTELLISENSE__) || (defined Q_CREATOR_RUN)
#define __global__
#define __device__
#define __host__
#define __shared__
#define CUDA_KERNEL_DIM(...)

#else
#define CUDA_KERNEL_DIM(...)  <<< __VA_ARGS__ >>>

#endif
现在您可以使用一个新的“Nsight Eclipse版”,它将成为CUDA Toolkit 5.0及更高版本的一部分

myKernel CUDA_KERNEL_DIM(gridDim, blockDim) (foo, bar);