Ошибка переопределения выхода 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'

Я использую GLUT Нейта Робинса для Win32 и получаю эту ошибку с Visual Studio 2005 или Visual C++ 2005 (Express Edition). В чем причина этой ошибки и как ее исправить?

Ответов (2)

Решение

Причина:

Stdlib.h , который поставляется с последними версиями Visual Studio имеет разные (и противоречивую) определение выхода () функции. Он конфликтует с определением в glut.h .

Решение:

Замените определение в glut.h на определение в stdlib.h. Поместите строку stdlib.h над строкой glut.h в своем коде.

#include <stdlib.h>
#include <GL/glut.h>

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.