C++ 作为字符数组的嵌入式文件的编译器问题
我试图嵌入一个文件(OpenCL内核)作为字符数组 主要问题是,对于任何包含C++ 作为字符数组的嵌入式文件的编译器问题,c++,c,char,opencl,C++,C,Char,Opencl,我试图嵌入一个文件(OpenCL内核)作为字符数组 主要问题是,对于任何包含# 例如: char mykernel[] = "stuff ---" "#if(1)" " stuff" "#else" " another stuff" "#define ASD 15"; void* clh = clsopen(cp,mykernel,CLLD_NOW); 所有这些都给我带来了严重的错误(编译器错误,好像它看不到它们) 编辑:在发布问题时分号是一个错误 错误如下: #define A
#
例如:
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:
"#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"
所有以
#
开头的行也是不带任何前导空格的行。问题是,在自然源文件中,每一行都将以\n
结尾,编译器将其视为空白。将\n
添加到每行末尾。缺少分号。如果我们知道错误是什么,这会有所帮助。也许你需要在\define
之前添加\n
?@qehgt:wow虽然这是一个简单的注释,但它有效:D