Ошибка переопределения выхода при перенасыщении
Вопрос
В моей простой программе 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'
Я использую Нейта Робинса ' ПЕРЕНАСЫЩЕНИЕ для Win32 и получите эту ошибку с помощью Visual Studio 2005 или Visual C ++ 2005 (Express Edition).В чем причина этой ошибки и как мне ее исправить?
Решение
Потому что:
Тот Самый стандартный файл.h который поставляется с последними версиями Visual Studio, имеет другое (и конфликтующее) определение выход() функция.Это противоречит определению в перенасыщение.ч.
Решение:
Переопределите определение в glut.h определением в stdlib.h.Поместите строку stdlib.h над строкой glut.h в вашем коде.
#include <stdlib.h>
#include <GL/glut.h>
Другие советы
или это...Чтобы исправить ошибку, щелкните правой кнопкой мыши на названии проекта на вкладке Обозреватель решений и выберите Свойства -> C / C ++ -> Препроцессор -> Определения препроцессора и добавьте GLUT_BUILDING_LIB к существующим определениям, разделенным точкой с запятой.