嵌入文件的编译器问题为char数组

时间:2013-03-12 21:34:14

标签: c++ c char opencl

我正在尝试将文件(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次,名称相同......等等

EDIT2:

"#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"

1 个答案:

答案 0 :(得分:1)

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