OpenCL:头文件的附加目录

时间:2010-12-13 12:43:08

标签: opencl specifications

OpenCL规范在 5.6.3构建选项

中写入

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。

2 个答案:

答案 0 :(得分:4)

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

例如,假设文件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文件的内容。

答案 1 :(得分:0)

我包含用于开发的标头,但是对于发行版,我将所有标头和依赖项处理到一个文件中,然后将该源嵌入到二进制文件中。