2008-08-18 13 views
28

私は、出口の再定義に関する次のエラーが表示されます。GLUTの出口の再定義エラー

1>c:\program files\microsoft visual studio 8\vc\include\stdlib.h(406) : error C2381: 'exit' : redefinition; __declspec(noreturn) differs 
1>  c:\program files\microsoft visual studio 8\vc\platformsdk\include\gl\glut.h(146) : see declaration of 'exit' 

私はネイトロビンスGLUT for Win32を使用して、Visual Studio 2005またはVisual C++ 2005でこのエラーを取得しています(エクスプレス版)。このエラーの原因は何ですか?どのように修正しますか?

答えて

68

原因:

STDLIB.H船のVisual Studioの最近のバージョンでの出口()機能の異なる(および競合)に定義されています。それはglut.hの定義と衝突します。

ソリューション:

オーバーライドstdlib.hでそれとglut.hで定義。 stdlib.h行をコードのglut.h行の上に置きます。 > C/C++ - - >プリプロセッサ - >プリプロセッサ定義および既存のGLUT_BUILDING_LIBを追加

#include <stdlib.h> 
#include <GL/glut.h> 
15

またはこれ... は右ソリューションエクスプローラ]タブでプロジェクト名を右クリックし、[プロパティ]を選択し、エラーを修正するには定義、セミコロンで区切られています。

+0

ありがとうございます!あなたのglut.hの上のstdlib.hを含めて私のためにはうまくいきませんでした。この解決策はありました! – SunnyD

+0

これを実行した後、私はリンカエラーを取得しますか? – Gerard