在我的简单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)中出现此错误.导致此错误的原因是什么?如何解决?
原因:
在stdlib.h中所附带最新版本的Visual Studio中有一个不同的(和相互冲突的)定义的exit()函数.它与glut.h中的定义冲突.
解:
使用stdlib.h中的定义覆盖glut.h中的定义.将stdlib.h行放在代码中的glut.h行上方.
#include#include
或者...要修复错误,请在"解决方案资源管理器"选项卡中右键单击项目名称,然后选择"属性" - >"C/C++" - >"预处理器" - >"预处理器定义",并将GLUT_BUILDING_LIB附加到现有定义,并以分号分隔.