1

每当我包含<cub/cub.cuh>头文件时,Visual Studio 的 IntelliSense 都会报告数以千计的错误。

正如您在随附的屏幕截图中所见,应用程序由空main()函数和include一行组成。

我在项目属性中定义了额外的包含目录和额外的库目录。我没有进行任何其他更改。

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

我能做些什么来解决这个错误吗?

智能感知行为

4

1 回答 1

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++ > AdvancedDisable Error Reporting从更改FalseTrue

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

就像我说的那样,这个解决方案更像是一种解决方法,不会对 IntelliSense 功能造成任何严重或严重的惩罚,而不是永久修复。但它工作正常

缺点:

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