Странная проблема с компиляцией кода c в xcode при включении glext.h - PullRequest
3 голосов
/ 27 мая 2011

У меня есть этот простой код

#include <stdio.h>    
#include <OpenGL/glext.h>    
#include <OpenGL/gl.h>    

int main (int argc, const char * argv[])
{
    printf("Hello, World!\n");
    return 0;
}

Если я закомментирую строку с помощью "glext.h", она компилируется и работает нормально в xcode 4, если я раскомментирую эту строку, я получу 345 ошибок, большинство из которых 'ожидается * до * '... Что происходит ?!и gl.h, и glext.h находятся внутри платформы OpenGL, но независимо от того, включаю я это или нет, я получаю одну и ту же ошибку.Я пробовал GCC 4.2, а также LLVM GCC 4.2 и LLVM (в данном случае 21 семантическая ошибка и ошибка синтаксического анализа).

Я уверен, что это связано с отсутствием у меня опыта работы с C, но я удивлен, что у gl.hпроблема, но glext.h имеет.

Даже если я попытаюсь скомпилировать из командной строки с помощью gcc, я получу много

/System/Library/Frameworks/OpenGL.framework/Headers/glext.h:3137: error: expected ‘)’ before ‘const’

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

Это ошибка с glext.h. Если вы посмотрите на этот файл, то увидите, что в нем есть набор определений, которые используют GLenum, но GLenum не определено нигде в этом файле. Итак, перед тем как включить glext.h, вам нужно включить файл, который определяет GLenum. Самое простое, что нужно сделать, это включить gl.h сначала вместо второго:

#include <stdio.h>
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
2 голосов
/ 27 мая 2011

Переключите эти две строки:

#include <OpenGL/glext.h>    
#include <OpenGL/gl.h>    

И это должно работать.

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