2015-11-02 4 views
0

Я пытаюсь написать программу OpenGL, которую я компилирую через MinGW. Мне удалось успешно связать OpenGL, GLUT, GLFW и GLM с моим файлом main.cpp. Учитывая следующие заголовки:Связывание библиотек GLEW при компиляции с помощью MinGW

#include "GL/glut.h" 
#include "GLFW/glfw3.h" 
#include "GL/glew.h" 
#include "glm/vec3.hpp" 

И следующий CMD линия:

g++ -o leaf.exe -Wall physics.cpp -mwindows lib/glut32.lib -lopengl32 -lglu32 -lglfw3dll -lglew32 -IC:/MinGW/include/GL 

мне удалось получить его для успешной компиляции. Однако при размещении .a файлы в MinGW/ОМТ в DLL-файл в исходной папке и .h файл в C: \ MinGW \ включать и добавление

#include "GL/glew.h" 

С следующей командной строки

g++ -o leaf.exe -Wall physics.cpp -mwindows lib/glut32.lib -lopengl32 -lglu32 -lglfw3dll -lglew32 -IC:/MinGW/include/GL 

Тогда я получаю длинный список ошибок, в том числе:

In file included from physics.cpp:6:0: 
c:\mingw\include\gl\glew.h:85:2: error: #error gl.h included before glew.h 
#error gl.h included before glew.h 

In file included from physics.cpp:6:0: 
c:\mingw\include\gl\glew.h:1814:94: error: 'GLchar' does not name a type 
typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); 

Мой первый раз пытается сделать что-то без использования Visual Studio или Eclipse. Пробовал много исправлений, которые я нашел здесь, но ничего конкретного.

Спасибо за прочтение!

ответ

1

Вы должны изменить порядок включает в себя:

#include "GL/glew.h" 
#include "GL/glut.h" 
#include "GLFW/glfw3.h" 
#include "glm/vec3.hpp" 

GLFW автоматически включают gl.h, что и GLEW жалуется (и GLUT?). Не знаете, почему вы используете GLUT и GLFW в одной сборке, они точно не совпадают ...

+0

Отлично! Спасибо, могу я спросить, почему порядок считается? Просто я понимаю это больше! Я следил за учебником онлайн и использовал GLUT для некоторых предыдущих проектов и думал об использовании их обоих, но если они не собираются вместе, я попытаюсь изучить GLEW вместе с учебным пособием, который я читаю :) Еще раз спасибо! –

+0

Проверьте GLEW.h, там есть строка, которая проверяет, включен ли GL.h и запускает #error, если это было. – Shokwav

Смежные вопросы