包含 CUB header 会触发许多 Visual Studio Intellisense 错误
Including the CUB header triggers many Visual Studio Intellisense errors
每当我包含 <cub/cub.cuh>
header 文件时,visual studio 的 IntelliSense 会报告数千个错误。
如您在所附屏幕截图中所见,应用程序由空 main()
函数和 include
行组成。
我在项目属性中定义了额外的包含目录和额外的库目录。我没有做任何其他更改。
我的设置包括 visual studio community 2015
、cuda 8.0.61
和 cub 1.7.0
库。
有什么办法可以解决这个错误吗?
感谢 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
window 中将选项 Build + IntelliSense
更改为 Build Only
第 2 步
在 visual Studio 中转到:Tools > Options > Text Editor > C/C++ > Advanced
并将 Disable Error Reporting
从 False
更改为 True
解释:
这将关闭 IntelliSense 错误检查功能,进而解决我的问题。这个部分解决方案将迫使我只依赖编译器(构建)输出,但这不是问题。
正如我所说,此解决方案更像是一种解决方法 ,不会对 IntelliSense 功能造成任何严重或严重的惩罚,而不是永久修复。 但它工作正常。
缺点:
- 在我当前的项目中,有些函数是
cub
包装器,这些函数有时不会被自动完成检测到。
- 此外,如果错误总数达到 IntelliSense 限制,IntelliSense 将停止工作。 (编辑: "without any serious or critical penalty" 直接从 window... 出来了。
每当我包含 <cub/cub.cuh>
header 文件时,visual studio 的 IntelliSense 会报告数千个错误。
如您在所附屏幕截图中所见,应用程序由空 main()
函数和 include
行组成。
我在项目属性中定义了额外的包含目录和额外的库目录。我没有做任何其他更改。
我的设置包括 visual studio community 2015
、cuda 8.0.61
和 cub 1.7.0
库。
有什么办法可以解决这个错误吗?
感谢 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
window 中将选项 Build + IntelliSense
更改为 Build Only
第 2 步
在 visual Studio 中转到:Tools > Options > Text Editor > C/C++ > Advanced
并将 Disable Error Reporting
从 False
更改为 True
解释:
这将关闭 IntelliSense 错误检查功能,进而解决我的问题。这个部分解决方案将迫使我只依赖编译器(构建)输出,但这不是问题。
正如我所说,此解决方案更像是一种解决方法 ,不会对 IntelliSense 功能造成任何严重或严重的惩罚,而不是永久修复。 但它工作正常。
缺点:
- 在我当前的项目中,有些函数是
cub
包装器,这些函数有时不会被自动完成检测到。 - 此外,如果错误总数达到 IntelliSense 限制,IntelliSense 将停止工作。 (编辑: "without any serious or critical penalty" 直接从 window... 出来了。