2011-07-06 8 views
0

私はVisual Studio 2010を使ってCプロジェクトをビルドしています。私のプロジェクトには、いくつかのヘッダファイル、ソースファイル、パーサが含まれています。それはlexbasonファイルを使用します。私は、コンパイル時に、単一のエラーを取得し、IEのです私は、ヘッダーのいずれかを含める前に、私のmain.cファイル内Visual C++のコンパイルエラー

#define WIN32_WINNT >= 0x0501 

を含むように取得しています解決策を試してみました

abc.y:error C2065: 'INPUT' : undeclared identifier 

次このエラーを取り除くことはできません。このエラーの原因になる可能性がありますか?エラーを示しているコードの

EDIT

スニペットは次のとおりです。

 list_Cons(0, list_List((POINTER)INPUT) 

驚くべき事は、私はINPUT1に入力を変更した場合、私は同じエラーを取得していることです。変更するのはストイックです。

+0

これはあなたの探しているものですか? http://support.microsoft.com/kb/892073コードを見ることなくもっと多くを伝えることはできません。 – BlackJack

+0

失敗した回線はどこから来たのですか?それは 'yacc'で生成されたファイルですか?その場合、yaccのマニュアルを参照する必要があります。 – Vlad

+0

INPUTはどこから来たのですか? – Rudi

答えて

0

C++コンパイラは* .yファイルを処理できません。そのためには、Visual Studio 2010に付属していないyacc/bisonプログラムが必要です。

+0

私はVS2010に '* .y'をコンパイルする方法についての組み込み規則がないと思うので、問題はどこかにあるはずです。 – Vlad

+0

yaacとlexファイルがlexとbisonを使って生成する、対応するヘッダとソースファイルを生成しました。そして私はこれらのファイルを一緒にコンパイルしています。 – thetna

+0

@thetna:投稿されたエラーメッセージは、C++コンパイラで "abc.y"をコンパイルしようとしているように見えます。すでにyacc出力がある場合は、それらのファイルがプロジェクトに含まれていることを確認して、プロジェクトからabc.yを削除する必要があります。 – aschepler

2

恐らくthisthisと読んでいます。

#define WIN32_WINNT >= 0x0501が効きません。代わりに#define WIN32_WINNT 0x0501を試してください。

また、あなたは実際に私が他のビルドの種類と一緒にMSVCプロジェクトを生成することができますCMakeを使用し、自分自身のために

0

WINUSER.H #includingされていることを確認してください。 .y needs to be processedがC/C++ファイルの外にあり、MSVCに非C/C++パーツの前処理に必要な外部ツールを呼び出すように指示します。