OpenCL编译器预处理定义?

lei*_*inz 2 opencl osx-snow-leopard

我正在开发Snow Leopard上的OpenCL代码,并了解OpenCL即时编译是由Clang/LLVM完成的.是否使用C预处理器?有没有办法用编译器设置预处理定义?存在什么定义?

我希望代码能够知道它是为CPU还是GPU编译的,所以我可以使用printf语句进行调试.

Bah*_*bar 5

clBuildProgramAPI需要的编译器参数(的const char * options参数).

-D MYMACRO被理解,也是如此-D MYMACRO=value.

有关预定义的宏,请参阅OpenCL规范以获取完整列表(第6.9节).一份非详尽的清单:

  • __FILE__
  • __LINE__
  • __OPENCL_VERSION__