如何解决在Xcode下以递归方式包含OpenCL源中的文件
我正在寻找一个可以在我的GPU设备上运行的调用OpenCL代码的主机程序。 cl源具有以下形式:
#include "skip_mwc.cl"
typedef struct{ uint x; uint c; } mwc64x_state_t;
//blah...
如果我放弃了#include
指令并将“ skip_mwc.cl”的内容直接复制/粘贴到该源代码中,则可以部分“构建”并至少得到一些错误,表明我的编译器( clang9 cl编译器)至少可以识别内核代码。使用#include
方法时,出现以下错误:
Build log::
<program source>:9:10: fatal error: 'skip_mwc.cl' file not found
#include "skip_mwc.cl"
我已经检查过,并且文件在搜索路径中,所以我倾向于认为我的Xcode IDE不能正确索引.cl文件来执行自动文件包含(如.c或.cpp)。
我真的想避免不得不将源从一个文件复制/粘贴到另一个文件中。非常欢迎和需要来自熟悉Xcode的人的任何建议,他们遇到了这个问题并设法解决了这个问题。
谢谢, A
解决方法
两种可能的解决方案:
- 在
-I include_dir
中设置clBuildProgram()
编译器选项,另请参见this answer。 - 使用
fstream
从C ++读取两个文件,并将它们的内容字符串连接。
另请参见通过stringification macro将OpenCL代码嵌入可执行文件的选项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。