카테고리 없음
[펌] glut.h의 exit 재정의 에러(stdlib.h)
NGVI
2009. 2. 28. 18:11
오픈지엘로 개발된 프로그램을 실행하다가 애러가 있었는데 아래와 같이 해결했뜸.
Visual C++ (ver. 7.0 이상) 에서 GLUT용 프로그램을 작성할 때, 다음과 같은 stdlib.h 의 exit 중복 정의 에러가 발생한다.
c:\program files\microsoft visual studio 9.0\vc\include\stdlib.h(371) : error C2381: 'exit' : 재정의; __declspec(noreturn) 가 다릅니다.
여러가지 해결책이 있겠으나, 여기서는 2가지를 제시하겠다.
(해결책 1) stdlib의 include를 GL/glut.h 보다 먼저 선언한다
(해결책 2) GL/glut.h 에서 문제가 발생한 부분을 수정한다.
먼저, 문제가 발생하는 부분은 다음과 같다.
#if defined(_WIN32)
# ifndef GLUT_BUILDING_LIB
extern _CRTIMP void __cdecl exit(int);
# endif
#else
아래의 코드를 문제가 발생한 부분에 덮어쓴다.
#if _MSC_VER>= 1200
_CRTIMP __declspec(noreturn) void __cdecl exit(int);
#elif defined(_WIN32) && !defined(GLUT_BUILDING_LIB)
extern _CRTIMP void __cdecl exit(int);
#else
문제해결~