这里的配置问题,希望将来能帮助别人。
我创建了一个文件夹“C:\ openCLcode \ include \”,其中包含Khronos网站上的所有必要文件:http://www.khronos.org/registry/cl/
现在我想创建一个运行openCL的Code :: Blocks项目。所以我粘贴了一些示例代码并更改了包含路径:
在我的.c文件中:
#include <C:\openCLcode\include\cl.h>
在该cl.h
文件中,它抱怨cl_platform.h
所以我也修复了这条道路:
#include <C:\openCLcode\include\cl_platform.h>
现在我遇到的问题是:undefined reference to 'clGetPlatformIDs@12'
这是有问题的功能和行:
cl_device_id create_device() {
cl_platform_id platform;
cl_device_id dev;
int err;
/* Identify a platform */
//////////////THIS IS THE LINE WITH ERROR:////////////
err = clGetPlatformIDs(1, &platform, NULL);
//////////////////////////////////////////////////////
if(err < 0) {
perror("Couldn't identify a platform");
exit(1);
}
/* Access a device */
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &dev, NULL);
if(err == CL_DEVICE_NOT_FOUND) {
err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_CPU, 1, &dev, NULL);
}
if(err < 0) {
perror("Couldn't access any devices");
exit(1);
}
return dev;
}
我觉得我真的搞砸了我的包容方案......有人可以推荐一个更好的方法来解决这个问题吗?
非常感谢
答案 0 :(得分:6)
您需要将libOpenCL.a库链接到您的项目。
1)右键单击您的项目(在代码块中)
2)选择“构建选项”
3)选择“链接器设置”选项卡
4)按“添加”按钮
5)选择openCL库的路径,然后选择libOpenCL.a。
或者你可以用你的项目编译OpenCL :)只需在你的项目中添加所有openCL .cpp文件并尝试构建它。