Yak*_*kov 5 specifications compilation header-files opencl
在帖子之后,如果我有头文件,其中有一些函数实现,应该包含在几个内核中(我的意思是这些函数在所有内核中都是辅助的,我不想复制代码)
我如何包含这些内容 - 我可以将函数保留在头文件中吗?是否可以编译内核和头函数?
在这些情况下,您能指定(可能通过示例)我如何使用"-I"选项吗?我正在使用VS2010(如果它的问题)
注意:每个内核都在不同的程序中运行
是的,您可以在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/");