0

我正在尝试将文件(OpenCL 内核)嵌入为 char 数组,主要问题是它给我任何包含的行的错误#

例子:

char mykernel[] =
"stuff ---"
"#if(1)"
"    stuff"
"#else"
"    another stuff"
"#define ASD 15";

void* clh = clsopen(cp,mykernel,CLLD_NOW);

所有这些事情都给我带来了严重的错误(编译器错误,好像它看不到它们)

编辑:分号是发布问题的错误。

错误如下:

#define ASD 15

在整个代码中使用这个 ASD,得到像未声明的标识符这样的错误

采用#if #else

在中使用一些功能#if和相同的名称#else

得到错误,比如函数被声明了 2 次同名......等等

编辑2:

"#if(1)" //char number 26123: error: note: previous definition is here
"    inline functionA ...with output A"
"#else" //char number 28700: error: redefinition of functionA
"    inline functionA ...with output B"
4

1 回答 1

1

所有以 开头的行#也是开头没有任何前导空格的行。问题在于,在自然源文件中,每一行都将以\n编译器视为空格的结尾。添加\n到每一行的末尾。

于 2013-03-12T21:52:13.740 回答