我在 C++ 中使用 cuda,cuda 编译器“理解”某些关键字(即global),但 Visual Studio 的语法高亮将这些关键字识别为错误,虽然这不会破坏任何东西,但很烦人。
有没有办法让visual studio识别这些关键字(不需要重新定义它们,只需让visual studio理解它们存在)。
__global__ void func(int* a, int* b)
{
int place = blockIdx.x * blockDim.x + threadIdx.x;
///more code
}
这里的问题是所涉及的编译器。Visual Studio 有一个相当智能的编辑器,具有所谓的智能感知功能。这个编辑器包括一个真正的 C++ 编译器 - 解析 C++ 没有一个是不可行的。Now__global__
不是 C++ 关键字,因此 Intellisense 有充分的理由抱怨。
作为一种解决方法,由于它是一个真正的编译器,您可以利用它:
#if defined __INTELLISENSE__
#define __global__
#endif
现在,Intellisense 的预处理器将删除__global__
并将其余部分编译为常规 C++。Intellisense 实际上并没有链接,所以以后不会有什么坏处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句