OpenCL:头文件的附加目录

标签 opencl specifications

OpenCL规范在5.6.3 Build Options中写道:

5.6.3.1 预处理器选项

...  
-I dir  
    Add the directory dir to the list of directories to be searched  
    for header files.

有人可以解释一下这是什么意思吗?据我所知,您无法将头文件包含到 OpenCL 内核中。那么这个选项有什么用呢?

编辑:OpenCL 规范链接:http://www.khronos.org/registry/cl/specs/opencl-1.1.pdf

EDIT2:我的假设是不允许将头文件包含到 OpenCL 内核中。现在我知道得更清楚了,感谢 jHackTheRipper。

最佳答案

它允许您添加一些包含不在标准包含搜索路径中的头文件的目录。这样您就可以告诉编译器这些特定头文件位于系统上的位置。

例如,假设文件 foo.h 不在标准包含路径中(在 Unix 系统上通常为 /usr/include),而是在 /home/foo/my_headers/foo.h 中。 ,您可以通过执行以下操作来要求编译器在/home/foo/my_headers 中搜索头文件:

g++ -I/home/foo/my_headers foo.c -o foo

为了完整起见,本节标题介绍了“预处理器”这个词,它是在编译器之前调用的程序,用于替换所有 #something指令的等效指令。 #include <foo.h>将被替换为 foo.h 的内容文件。

关于OpenCL:头文件的附加目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4428919/

相关文章:

Linux 上的 OpenCL 编译

c++ - C++中的构造函数链接

list - 规范列表的 HTML5 标记

css - 匿名 block 盒 vs block 元素

opencl - CL_INVALID_WORK_GROUP_SIZE错误

opencl - 如何检查 Altera OpenCL 中的吞吐量和延迟

c++ - 工作组障碍不起作用

c++ - OpenCL : pass two String to kernel, 什么都不返回

jsf - #{resource} EL 在哪里指定?

java - 一个类型如何有多个父类(super class)型,它们是数组类型,而不是它本身是数组类型?