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对于 Win32,并在 Visual Studio 2005 或 Visual C++ 2005(Express Edition)中出现此错误。导致此错误的原因是什么以及如何修复它?
In my simple OpenGL program I get the following error about exit redefinition:
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'
I'm using Nate Robins' GLUT for Win32 and get this error with Visual Studio 2005 or Visual C++ 2005 (Express Edition). What is the cause of this error and how do I fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
原因:
最新版本的 Visual Studio 附带的 stdlib.h 对 exit() 函数有不同(且相互冲突)的定义。它与 glut.h 中的定义冲突。
解决方案:
用stdlib.h中的定义覆盖glut.h中的定义。将 stdlib.h 行放在代码中的 glut.h 行上方。
Cause:
The stdlib.h which ships with the recent versions of Visual Studio has a different (and conflicting) definition of the exit() function. It clashes with the definition in glut.h.
Solution:
Override the definition in glut.h with that in stdlib.h. Place the stdlib.h line above the glut.h line in your code.
或者这个...
要修复该错误,请右键单击“解决方案资源管理器”选项卡中的项目名称,然后选择“属性”->“项目名称”。 C/C++->预处理器->预处理器定义并将 GLUT_BUILDING_LIB 附加到现有定义中,并用分号分隔。
or this...
To fix the error, right click on the project name in the Solution Explorer tab and select Properties -> C/C++ -> Preprocessor -> Preprocessor definitions and append GLUT_BUILDING_LIB to the existing definitions, seperated by semicolons.