0

プロジェクトを OSG でコンパイルしようとしていますが、必要なすべての rpm を OpenSUSE 12.1 にインストールしました。私が行ったのは #include だけで、コンパイラ (gcc 4.6.2) が内部でクラッシュして、次のように言っているため、何が起こっているのかわかりません。

「「(」トークンの前に識別子が必要です」

問題は、エラーをクリックすると、FileUtils に表示される場所です。

列挙値 {

わかった、

SOURCE_EQUALS_DESTINATION、

... 等々

};

何が起こっているのか理解できません。助けていただければ幸いです。

4

2 に答える 2

0

プリプロセッサが予期しない問題に遭遇したため、明らかにどこかで構文エラーです。投稿した小さなスニペットには既に 1 つ含まれています。列挙型の終了ブレース ( ) の後にセミコロンが必要ですenum Value { ... };

于 2012-08-07T18:32:26.847 に答える
0

複数の API を使用していて、そのうちの 1 つが OSG のようにうまくネームスペース化された列挙型を使用するのではなく、その定数を #define すると、奇妙な相互作用が発生することがあります。FileUtils の前に含めるものは、#define-ing "OK" または "Value" である可能性があります。これらは、エラーが発生する行で確認できる最も一般的なものです。インクルードする前に #undef OK と #undef Value を試すか、定数にプリプロセッサ コマンドを使用しないようにしてください。

于 2012-08-17T19:45:28.167 に答える