Подтвердить что ты не робот

Ошибка переопределения выхода 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 С++ 2005 (Express Edition). В чем причина этой ошибки и как ее исправить?

4b9b3361

Ответ 1

Причина:

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

Решение:

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

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

Ответ 2

или это... Чтобы исправить ошибку, щелкните правой кнопкой мыши по имени проекта на вкладке "Проводник решений" и выберите "Свойства" → "C/С++ → Препроцессор → Определения препроцессора и добавьте GLUT_BUILDING_LIB к существующим определениям, разделенным точками с запятой.