GLUT退出重定义错误

时间:2008-08-18 09:55:29

标签: opengl glut

在我的简单OpenGL程序中,我收到以下关于退出重新定义的错误:

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'

我正在使用Nate Robins'GLUT for Win32并在Visual Studio 2005或Visual C ++ 2005(Express Edition)中出现此错误。导致此错误的原因是什么?如何解决?

2 个答案:

答案 0 :(得分:70)

<强>原因:

最近版本的Visual Studio附带的 stdlib.h exit()函数有不同(且相互矛盾)的定义。它与 glut.h 中的定义冲突。

<强>解决方案:

使用stdlib.h中的定义覆盖glut.h中的定义。将stdlib.h行放在代码中的glut.h行之上。

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

答案 1 :(得分:18)

或者...... 要修复错误,请右键单击解决方案资源管理器选项卡中的项目名称,然后选择属性 - &gt; C / C ++ - &gt;预处理器 - &gt;预处理程序定义并将GLUT_BUILDING_LIB附加到现有定义,由分号分隔。