clBuildProgram 编译选项-I找不到头文件路径的问题

netxuning 2014-12-07 04:46:49
clBuildProgram函数第四个参数options,我设置的是:
-cl-finite-math-only -cl-no-signed-zeros -cl-std=CL1.2 -DVECTOR_SIZE_32 -I/root/OpenCL/

并将头文件放在/root/OpenCL/下,可在编译kernel的时候提示找不到头文件。

而且,我发现opencl默认头文件目录就是/usr/local/include/, 如果把头文件放在其中,则可以编译通过。
或者kernel程序的头文件包含的指明全路径,这样也能通过编译。如 #include "/root/OpenCL/header.h"。

根据这几个现象来看,OpenCL在kernel中include 头文件是可以正常工作,但clBuildProgram的-I选项好像不起作用。

有谁遇到同样的问题?怎么解决?谢谢了 。。。
...全文
381 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zenny_chen 2014-12-12
  • 打赏
  • 举报
回复
引用 2 楼 netxuning 的回复:
不是,kernel可以有头文件的
难道是你放在root下面运行时OpenCL编译器没有权限访问?你放到其它用户目录试试?
netxuning 2014-12-12
  • 打赏
  • 举报
回复
引用 1 楼 zenny_chen 的回复:
clBuildProgram的编译选项是针对你OpenCL kernel来的,而不是主机端API。对于kernel而言,没啥头文件这种说法。 你这里 -I/root/OpenCL/ 放的应该是主机端执行的函数接口吧?这个应该在你主机端编译器的命令选项中加上。
不是,kernel可以有头文件的
netxuning 2014-12-12
  • 打赏
  • 举报
回复
引用 3 楼 zenny_chen 的回复:
[quote=引用 2 楼 netxuning 的回复:] 不是,kernel可以有头文件的
难道是你放在root下面运行时OpenCL编译器没有权限访问?你放到其它用户目录试试?[/quote] 谢谢,我再试试
zenny_chen 2014-12-09
  • 打赏
  • 举报
回复
clBuildProgram的编译选项是针对你OpenCL kernel来的,而不是主机端API。对于kernel而言,没啥头文件这种说法。 你这里 -I/root/OpenCL/ 放的应该是主机端执行的函数接口吧?这个应该在你主机端编译器的命令选项中加上。

602

社区成员

发帖
与我相关
我的任务
社区描述
异构开发技术
社区管理员
  • OpenCL和异构编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧