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回宣言されているなどのエラーが発生する...など

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

1 に答える 1

1

で始まる行はすべて、#先頭の空白なしで始まる行でもあります。\n問題は、自然なソース ファイルでは、コンパイラが空白として扱う各行が終了することです。\nすべての行の末尾に を追加します。

于 2013-03-12T21:52:13.740 に答える