如何在OpenCL/CUDA语法中关闭Eclipse中的错误/警告?

smu*_*kes 4 eclipse cuda syntax-highlighting nvidia opencl

我使用Eclipse作为OpenCL的编辑器,我开启了*.cl文件的语法突出显示,使其行为类似于C++代码.它工作得很好,但我的所有代码都加下划线为语法错误.有没有办法让我的语法突出显示并关闭我的*.cl文件的错误/警告?

grr*_*sel 6

首先,Eclipse语法高亮显示器被编程为C和C++的语法,而不是OpenCL,因此它不知道OpenCL的语法扩展,例如

  • 新关键字
  • 新数据类型

我建议新关键字可以有条件地定义为什么,例如

#define __kernel 
#define __global
Run Code Online (Sandbox Code Playgroud)

并且可以类似地处理额外的类型名称,例如

#define float2 float
Run Code Online (Sandbox Code Playgroud)

#定义需要谨慎,从而不会对OpenCL的代码编译申请,只有在Eclipse编辑器.定义可以在Eclipse首选项中设置,也可以在内核代码本身中保护.

#ifndef __OPENCL_VERSION__
/* Define out keywords causing errors */ 
#endif
Run Code Online (Sandbox Code Playgroud)

这将有一个小问题,因为它消除了Eclipse中导航视图中函数的重载之间的区别.

理想的答案是重新编程CDT编辑器(Eclipse的一部分,解析您键入的文本,并对其进行分析)以了解OpenCL,但这将是一项重大工作.