我用Geforce GT 540M分析了Visual Studio 2010和CUDA 4.0,但IDE不知道一些关键词

我用Geforce GT 540M分析了Visual Studio 2010和CUDA 4.0,但IDE不知道一些关键词,c,cuda,C,Cuda,它通过在许多正确的单词下面加红线来显示许多错误,但我可以正确运行它。这些单词包括C关键字和CUDA关键字。你能帮我吗? 很抱歉,我没有10个声誉来发布图片,也许图片更清晰。我也有类似的问题。问题是IDE试图独立于nvcc单独解析文件,但它不理解某些关键字。因此,它做出了一些错误的假设,例如认为_global _;是一个变量/函数的名称,然后混淆它后面还有另一个名称,并忽略它,然后一切都与他无关 由于VisualStudio的IDE假定声明了_MSC_VER,而CUDA编译器假定声明了u CUDA

它通过在许多正确的单词下面加红线来显示许多错误,但我可以正确运行它。这些单词包括C关键字和CUDA关键字。你能帮我吗?
很抱歉,我没有10个声誉来发布图片,也许图片更清晰。

我也有类似的问题。问题是IDE试图独立于nvcc单独解析文件,但它不理解某些关键字。因此,它做出了一些错误的假设,例如认为_global _;是一个变量/函数的名称,然后混淆它后面还有另一个名称,并忽略它,然后一切都与他无关

由于VisualStudio的IDE假定声明了_MSC_VER,而CUDA编译器假定声明了u CUDACC_uu,因此您可以区分IDE和CUDA在其中解析的内容

所以,我所做的是创建一个helper头文件sense.h,我在所有.cu文件的开头都包含了它,并且只包含了这些文件。在sense.h中,我将所有CUDA特定关键字定义为宏:

#ifdef _MSC_VER
/*
Include this file at the very beginning of your .cu files to make Visual Studio IntelliSense more compatible with it.
Do -NOT- include it in .cpp files or header files
*/

#if !defined(__CUDACC__)
//unfortunately there is no IntelliSense macro.
//Fortunately, __CUDACC__ is not defined when IntelliSense parses the file.

#define __CUDACC__
#include <host_defines.h>
#include <device_functions.h>

#ifndef __device__
#define __device__
#endif

#ifndef __host__
#define __host__
#endif

#ifndef __global__
#define __global__
#endif

#ifndef __forceinline__
#define __forceinline__ __forceinline
#endif

#endif
#endif

请发布代码并给出一些示例。好的,我现在就发布我的代码。我想添加图片可能很详细,而且它不能自动填充函数和键,这很糟糕