关于opengl:GLUT退出重新定义错误

关于opengl:GLUT退出重新定义错误

GLUT exit redefinition error

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

1
2
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行上方。

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

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


推荐阅读