GLUT退出重新定义错误

时间:2020-03-05 18:40:19  来源:igfitidea点击:

在我的简单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用于Win32,并在Visual Studio 2005或者Visual C ++ 2005(Express Edition)中遇到此错误。此错误的原因是什么,我该如何解决?

解决方案

回答

原因:

最新版本的Visual Studio附带的stdlib.h对exit()函数有不同的定义(并且有冲突)。它与glut.h中的定义冲突。

解决方案:

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

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

回答

或者这个...
要解决该错误,请在"解决方案资源管理器"选项卡中右键单击项目名称,然后选择"属性"->" C / C ++"->"预处理器"->"预处理器定义",然后将GLUT_BUILDING_LIB添加到现有定义(以分号分隔)中。