所以我开始使用OpenCL但是无法使用Mavericks和C ++主机在Air'13上工作。 这是代码。
#include <iostream>
#include <vector>
#include "OpenCL/opencl.h"
int main()
{
std::vector<cl::Platform> platforms;
cl::Platform::get(&platforms);
cl_int cl::Platform::get(&platforms);
}
当我尝试访问cl::Platform
库时,编译器(Xcode)抛出错误Use of undeclared Identifier
我尝试过几件事,主要是将头文件更改为cl.h
和OpenCL框架中的其他几个。如何让它工作,苹果网站声称Air支持OpenCL 1.2。
附录 - 什么是开始学习OpenCL的好书?
答案 0 :(得分:10)
您的代码段正在使用OpenCL C ++绑定,这些绑定在与主OpenCL API(即C)不同的头文件中定义。默认情况下,您需要的标题(cl.hpp
)不包含在OS X系统中,因此您必须直接从Khronos OpenCL Registry下载它(确保您获得版本)列于1.2)。然后,您只需要在代码中包含此标头。
推荐用于学习OpenCL的典型书籍是&#34; OpenCL编程指南(Munshi,Gaster,Mattson,Fung,Ginsberg)&#34;和#34;使用OpenCL进行异构计算(Gaster,Howes,Kaeli)&#34;。网上还有大量免费的教程资料,例如Hands-on OpenCL tutorial on Github。