在linux上编译的OpenCL代码,不能在windows上编译

时间:2010-07-19 16:10:46

标签: opencl

我最近在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;
}

2 个答案:

答案 0 :(得分:3)

男人,无论你多少次被字符串咬伤,一个人都不会学习。

这只是一个非空终止的字符串问题lol。

答案 1 :(得分:0)

它适用于我(使用AMD Stream Kernel Analyzer成功编译)。在Win7 64位,sdk v2.1和v10.6驱动程序上。你的格式很糟糕。