OpenCL,包含文件

Yak*_*kov 5 specifications compilation header-files opencl

帖子之后,如果我有头文件,其中有一些函数实现,应该包含在几个内核中(我的意思是这些函数在所有内核中都是辅助的,我不想复制代码)

我如何包含这些内容 - 我可以将函数保留在头文件中吗?是否可以编译内核和头函数?

在这些情况下,您能指定(可能通过示例)我如何使用"-I"选项吗?我正在使用VS2010(如果它的问题)

注意:每个内核都在不同的程序中运行

Nig*_*gel 8

是的,您可以在OpenCL中使用标题,以满足您的建议.每个内核文件都包含头文件并进行编译.

"-I"选项仅用于指定包含的路径.如果您的包含在您的工作目录中,则没有必要.这是一个例子:

/////////////////////////////////////////////////////////////////
// Load CL file, build CL program object, create CL kernel object
/////////////////////////////////////////////////////////////////
std::string  sourceStr = FileToString(params.kernelFile);

cl::Program::Sources sources(1, std::make_pair(sourceStr.c_str(), sourceStr.length()));
cl::Program program = cl::Program(oclHandles.context, sources);

program.build(oclHandles.devices,"-I c:/Includes/");
Run Code Online (Sandbox Code Playgroud)