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/