在我的简单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)中出现此错误。导致此错误的原因是什么?如何解决?
答案 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附加到现有定义,由分号分隔。