我对Nvidia的OpenCl / Cuda框架有疑问,但我认为这是一个gcc
链接问题。
opencl_hello_world.c
示例文件使用以下头文件:
#include "../OpenCL/common/inc/CL/opencl.h"
opencl.h
使用这些头文件:
#include <../OpenCL/common/inc/CL/cl.h>
#include <../OpenCL/common/inc/CL/cl_gl.h>
#include <../OpenCL/common/inc/CL/cl_gl_ext.h>
#include <../OpenCL/common/inc/CL/cl_ext.h>
所以所有头文件都在同一个文件夹中。
当我用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 Can't Find a Included Header。
但是搞乱框架头文件似乎不太可行了?处理这个问题的正确方法是什么?
答案 0 :(得分:7)
您正在使用#include“”表单和#include&lt;&gt;,它们不会在相同的路径中搜索。 “”是您的项目的本地,并且-g命令行指定为gcc,&lt;&gt;是-I到gcc指定的“系统”路径。
您可能需要在gcc的命令行中使用-Ipath / to / includes设置包含路径。