OpenCL规范在 5.6.3构建选项:
中写入...
-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。
答案 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)
我包含用于开发的标头,但是对于发行版,我将所有标头和依赖项处理到一个文件中,然后将该源嵌入到二进制文件中。