Ответ 1
Просто #include <windows.h>
до <gl/gl.h>
или <gl/glu.h>
.
Он необходим для некоторых типов, таких как WINGDIAPI
и APIENTRY
.
Компиляция файла, который использует OpenGL с Visual С++, когда я пытаюсь включить заголовочный файл gl.h, я получаю около 150 бесполезных ошибок компиляции:
ошибка C2144: синтаксическая ошибка: "void" должен предшествовать ";"
ошибка C4430: отсутствует спецификатор типа - int. Примечание: С++ не поддерживает default-int
ошибка C2146: синтаксическая ошибка: отсутствует ';' перед идентификатором "glAccum"
и др.
Просто #include <windows.h>
до <gl/gl.h>
или <gl/glu.h>
.
Он необходим для некоторых типов, таких как WINGDIAPI
и APIENTRY
.
если вы используете visual С++, убедитесь, что у вас уже есть библиотека opengl.
используйте #include <windows.h>
перед #include <GL/gl.h>
и если вы используете #include <glut.h>
в своей программе, убедитесь, что вы не являетесь типом, подобным этому
#include <GL/glut.h>
, если вы наберете так, что это может быть ошибка "GL/glut.h нет такого файла или каталога"
Похоже, вы включаете заголовок C внутри проекта С++. Попробуйте включить свой оператор include внутри:
extern "C" {
#include "gl.h"
}
Первая возможность для рассмотрения заключается в том, что сообщения компилятора действительно правильны. Разумеется, в эти сообщения об ошибках были номера строк, так что вы посмотрели на нарушающие строки и некоторые из предшествующих им строк, чтобы попытаться определить, что может быть причиной?
Были ли какие-либо другие сообщения, которые были получены до тех, которые вы цитировали? (Например, отсутствующий заголовок?) Всегда начинайте обращаться к сообщениям компилятора с первого; более поздние иногда являются побочными эффектами, вызванными этим.
Можете ли вы воспроизвести проблему в простом проекте? Достаточно ли просто написать #include <gl.h>
в противном случае пустой файл и попытаться его скомпилировать? Или есть ли больше об этом исходном коде, который вызывает ошибку?
Помните, что вы здесь, у вас есть доступ к вашему коду; вопросы, которые я задаю выше, - это те вещи, которые вам нужно учитывать, поскольку у вас не всегда может быть кто-то другой отлаживать ваш код для вас.