我最近在linux上编写了一些OpenCL代码(ubuntu 10.4,ati catalyst 10.4和ati sdk v2.1),并且它在linux上工作得很好。
当我想在Windows上运行我的代码时,我抱怨程序构建错误
“此声明没有存储类或类型说明符”
然后“必须在addrSapce常量中声明全局变量”
即使有一个无效的内核也不行,所以我对代码进行了评论,它仍然给出了同样的错误大声笑!
很奇怪,样本r工作得很好。当我将我的代码复制到示例项目中时,它给出了相同的错误。
我正在使用Windows 7 32位,ati流sdk v2.1和v10.6驱动程序(因为我无法在任何地方找到10.4 for Windows,这很难过,因为10.6没有保证支持OpenCL,方式去amd大声笑!)
我把所有的内核都删掉了,只留下了这个,我仍然有同样的错误,这里是
__kernel void set_float( __global float* buff ,
float v) {
buff[get_global_id(0)]=v;
}
答案 0 :(得分:3)
男人,无论你多少次被字符串咬伤,一个人都不会学习。
这只是一个非空终止的字符串问题lol。
答案 1 :(得分:0)
它适用于我(使用AMD Stream Kernel Analyzer成功编译)。在Win7 64位,sdk v2.1和v10.6驱动程序上。你的格式很糟糕。