用C++编译OpenGL程序出现的exit重定义错误
作者:Bob 日期:2007-05-19
以前搞图形,也就是玩玩DirectX的2D部分,现在进了图形学实验室,不得不开始玩3D的东西了。导师让我没事看看OpenGL,于是趁着去南京的机会买了本OpenGL的红宝书(老师给报销,不买白不买
)。看了两天,了解了个梗概,今天打算上机实践下:)从官网Down了书上的源代码,结果连一个最简单的Hello程序居然也会编译错误:
*\Microsoft Visual Studio 8\VC\include\stdlib.h(406) : error C2381: “exit”: 重定义;__declspec(noreturn) 不同
*\OpenGL\GLUT\glut-3.7.6-bin\GL/glut.h(146) : 参见“exit”的声明
思来想去觉得人家的code应该不会有什么问题,突然印象中好像看过OpenGL和C++有什么不太融合的地方来着,于是上网一搜,发现在include时只要让标准C++类库的头文件位于GLUT图形库头文件之前就行了。
看了下例程,果真是:
#include <GL/glut.h>
#include <stdlib.h>
然后改成:
#include <stdlib.h>
#include <GL/glut.h>
居然就OK了……
本人C++学得实在是差强人意,而且对系统库知之甚少,所以也搞不清楚为什么会这样。权当一个经验记下来吧,因为以后注定要经常和C++以及OpenGL打交道了……
)。看了两天,了解了个梗概,今天打算上机实践下:)从官网Down了书上的源代码,结果连一个最简单的Hello程序居然也会编译错误:*\Microsoft Visual Studio 8\VC\include\stdlib.h(406) : error C2381: “exit”: 重定义;__declspec(noreturn) 不同
*\OpenGL\GLUT\glut-3.7.6-bin\GL/glut.h(146) : 参见“exit”的声明
思来想去觉得人家的code应该不会有什么问题,突然印象中好像看过OpenGL和C++有什么不太融合的地方来着,于是上网一搜,发现在include时只要让标准C++类库的头文件位于GLUT图形库头文件之前就行了。
看了下例程,果真是:
#include <GL/glut.h>
#include <stdlib.h>
然后改成:
#include <stdlib.h>
#include <GL/glut.h>
居然就OK了……
本人C++学得实在是差强人意,而且对系统库知之甚少,所以也搞不清楚为什么会这样。权当一个经验记下来吧,因为以后注定要经常和C++以及OpenGL打交道了……
评论: 4 | 引用: 738 | 查看次数: 2559
回复
]一样的问题,谢谢啊
程序出现同样的错误 很诡异的exit错误
按你的方法 一改就对了 十分感谢哈!
按你的方法 一改就对了 十分感谢哈!
thanks
Bob不是一般的用功啊
发表评论
上一篇
下一篇

文章来自:
Tags: 





