2017-07-08 86 views
1

每当我包含<cub/cub.cuh>头文件时,Visual Studio的智能感知都会报告数千个错误。包括CUB头文件会触发许多Visual Studio智能感知错误

正如您在附件截图中看到的,应用程序由空行main()函数和include行组成。

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

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

有什么我可以做的,以解决这个错误?

IntelliSense behavior

+3

Cub使用cuda,cuda与intellisense不兼容,并且一个单独的头文件会包含很多代码,因为它是一个模板库。在讨论intellisense错误以及可能对它们做什么的SO'cuda'标签上有各种各样的问题。或者,您可以让VS2015不报告这些类型的错误。 –

+0

是的,您在阅读您的初稿并回复后,将其编辑到您的问题中。我从我的第一条评论中删除了该声明。 –

+0

@RobertCrovella如何强制VS2015不报告这些错误?你想关闭智能感知吗? – cukier9a7b5

回答

1

我要感谢罗伯特Crovella指着我在正确的方向。

永久的解决办法:在Visual Studio中本身解析文件,而不是在编译期间

#ifndef __INTELLISENSE__ 

#include <cub/cub.cuh> 

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

#endif 

的Visual Studio的__INTELLISENSE__宏只被定义。因此,上述代码块内的任何内容都不会由IntelliSense算法检查。


解决方法:(我的第一尝试解决这个问题,可以忽略不计)。

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

步骤#2
在Visual Studio中去:Tools > Options > Text Editor > C/C++ > AdvancedFalse改变Disable Error ReportingTrue

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

就像我说过的,这个解决方案更像是一个围绕的解决方法,在智能感知功能中没有任何严重或关键的损失,而不是一个永久修复。 但它工作正常

缺点:

    在我的当前项目
  1. ,但是也有一些​​包装的功能,这些功能往往不被自动完成检测。
  2. 此外,如果总错误计数达到智能感知限制,智能感知将停止工作。(编辑:“没有任何严重或严重的处罚”直接走出了窗户......)。