包括CUB标头会触发许多Visual Studio Intellisense错误

时间:2017-07-08 08:13:19

标签: visual-studio-2015 cuda intellisense cub

每当我添加<cub/cub.cuh>头文件时,visual studio的IntelliSense都会报告数千个错误。

正如您在附带的屏幕截图中看到的,应用程序包含空main()函数和include行。

我在项目属性中定义了其他包含目录和其他库目录。我没有做任何其他改变。

我的设置包含visual studio community 2015cuda 8.0.61cub 1.7.0库。

我有什么办法可以解决这个错误吗?

IntelliSense behavior

1 个答案:

答案 0 :(得分:1)

我要感谢Robert Crovella指出我正确的方向。

永久解决方案:

#ifndef __INTELLISENSE__

#include <cub/cub.cuh>

// And other troublesome libraries or code-blocks....

#endif

Visual Studio的__INTELLISENSE__宏仅在Visual Studio自身解析文件时定义,而不是在编译期间定义。因此,IntelliSense算法不会检查上面代码块中的任何内容。

解决方法:(我第一次尝试解决此问题,可以忽略)。

第1步:
在Visual Studio的Error List窗口更改选项Build + IntelliSenseBuild Only

第2步
在visual Studio中,转到:Tools > Options > Text Editor > C/C++ > Advanced并将Disable Error ReportingFalse更改为True

说明:
这将关闭IntelliSense错误检查功能,并通过扩展将解决我的问题。这个部分解决方案将迫使我只依赖于编译器(构建)输出,但这不是问题。

就像我说的,这个解决方案更像是围绕的解决方法,在IntelliSense功能中没有任何严重或严重的惩罚,而不是永久修复。 但它运作良好

缺点:

  1. 在我当前的项目中,有些函数是cub包装器,这些函数有时不会被自动完成检测到。
  2. 此外,如果总错误计数达到IntelliSense限制,则IntelliSense将停止工作。 (编辑:&#34;没有任何严重或严重的惩罚&#34;直接走出窗外......)。