未找到从头文件链接到的头文件。
我对 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 和其他头文件位于此文件夹中。
搜索完后,我将 opencl.h
中的包含内容更改为
#include "cl.h"
#include "cl_gl.h"
我在此处阅读的内容:gcc 找不到包含的标头。
但是乱搞框架头文件似乎不是一个可行的方法?处理这个问题的正确方法是什么?
I have a problem with Nvidia's OpenCl/Cuda framework, but I think it is a gcc
linking issue.
The opencl_hello_world.c
example file uses following header file:
#include "../OpenCL/common/inc/CL/opencl.h"
with opencl.h
using these header files:
#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>
So all the header files are in the same folder.
When I then compile with gcc opencl_hello_world.c -std=c99 -lOpenCL
I get following error messages:
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
...
Even though cl.h
and the other header files are located in this folder.
Having searched SO, I then changed the includes in the opencl.h
to
#include "cl.h"
#include "cl_gl.h"
how I have read here: gcc Can't Find a Included Header.
But messing around with the frameworks header files does not seem like the way to go? What would be the proper way to handle this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您同时使用 #include "" 形式和 #include <>,它们不在相同的路径中搜索。 "" 是您的项目本地的,-i 命令行指定为 gcc,<>是 -I 指定的 gcc 的“系统”路径。
您可能需要在 gcc 命令行中使用 -Ipath/to/includes 设置包含路径。
You're using both #include "" form and #include <>, which don't search in the same paths. "" is local to your project, and the -i command line specified to gcc, <> is the 'system' path specified by -I to gcc.
You probably need to set the include path with -Ipath/to/includes in gcc's command line.