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);