Ошибки компиляции VC ++ при включении gl.h - PullRequest
19 голосов
/ 10 января 2009

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

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

ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C ++ не поддерживает default-int

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

и т.д.

Ответы [ 4 ]

45 голосов
/ 10 января 2009

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

2 голосов
/ 25 декабря 2011

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

1 голос
/ 10 января 2009

Звучит так, будто вы включили заголовок C в проект C ++. Попробуйте заключить ваш оператор включения внутрь:

extern "C" {
#include "gl.h"
}
0 голосов
/ 10 января 2009

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...