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

Ошибки компиляции VС++ при включении gl.h

Компиляция файла, который использует OpenGL с Visual С++, когда я пытаюсь включить заголовочный файл gl.h, я получаю около 150 бесполезных ошибок компиляции:

ошибка C2144: синтаксическая ошибка: "void" должен предшествовать ";"

ошибка C4430: отсутствует спецификатор типа - int. Примечание: С++ не поддерживает default-int

ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором "glAccum"

и др.

4b9b3361

Ответ 1

Просто #include <windows.h> до <gl/gl.h> или <gl/glu.h>. Он необходим для некоторых типов, таких как WINGDIAPI и APIENTRY.

Ответ 2

если вы используете visual С++, убедитесь, что у вас уже есть библиотека opengl. используйте #include <windows.h> перед #include <GL/gl.h> и если вы используете #include <glut.h> в своей программе, убедитесь, что вы не являетесь типом, подобным этому #include <GL/glut.h>, если вы наберете так, что это может быть ошибка "GL/glut.h нет такого файла или каталога"

Ответ 3

Похоже, вы включаете заголовок C внутри проекта С++. Попробуйте включить свой оператор include внутри:

extern "C" {
#include "gl.h"
}

Ответ 4

Первая возможность для рассмотрения заключается в том, что сообщения компилятора действительно правильны. Разумеется, в эти сообщения об ошибках были номера строк, так что вы посмотрели на нарушающие строки и некоторые из предшествующих им строк, чтобы попытаться определить, что может быть причиной?

Были ли какие-либо другие сообщения, которые были получены до тех, которые вы цитировали? (Например, отсутствующий заголовок?) Всегда начинайте обращаться к сообщениям компилятора с первого; более поздние иногда являются побочными эффектами, вызванными этим.

Можете ли вы воспроизвести проблему в простом проекте? Достаточно ли просто написать #include <gl.h> в противном случае пустой файл и попытаться его скомпилировать? Или есть ли больше об этом исходном коде, который вызывает ошибку?

Помните, что вы здесь, у вас есть доступ к вашему коду; вопросы, которые я задаю выше, - это те вещи, которые вам нужно учитывать, поскольку у вас не всегда может быть кто-то другой отлаживать ваш код для вас.