未找到链接到头文件的头文件。

我对Nvidia的OpenCl / Cuda框架有疑问,但我认为这是一个gcc链接问题。

opencl_hello_world.c示例文件使用以下头文件:

 #include "../OpenCL/common/inc/CL/opencl.h" 

使用这些头文件的opencl.h

 #include  #include  #include  #include  

所以所有头文件都在同一个文件夹中。

当我用gcc opencl_hello_world.c -std=c99 -lOpenCL编译时,我收到以下错误消息:

 error: ../OpenCL/common/inc/CL/cl.h: No such file or directory error: ../OpenCL/common/inc/CL/cl_gl.h: No such file or directory ... 

即使cl.h和其他头文件位于此文件夹中。

搜索过SO之后,我将opencl.h的包含更改为

  #include "cl.h" #include "cl_gl.h" 

我在这里阅读: gcc无法找到包含的标题 。

但是搞乱框架头文件似乎不怎么样? 处理这个问题的正确方法是什么?

您正在使用#include“”表单和#include <>,它们不会在相同的路径中搜索。 “”是项目的本地,并且指定给gcc的-i命令行,<>是-I到gcc指定的“系统”路径。

您可能需要在gcc的命令行中使用-Ipath / to / includes设置包含路径。