glew\glew.h:85: error: C1189: #error: gl.h included before glew.h
原因
头文件包含顺序导致,qt中使用opengl的话头文件书写顺序错误的话会报告这个错误,这时需要保证
#include <QOpenGLWindow>
#include <QOpenGLWidget>
#include <QGLWidget>
#include <QGLFunctions>
#include <QtOpenGL>
#include <QOpenGLFunctions>
这些头文件一定要声明在
#include "glew/glew.h"
#include "glfw/glfw3.h"
#include "glm/glm.hpp"
#include "glm/gtc/matrix_transform.hpp"
#include "glm/gtc/type_ptr.hpp"
以上头文件的后面
解决
正确的声明顺序是:
#include "glew/glew.h"
#include "glfw/glfw3.h"
#include "gl/GLU.h"
#include "glm/glm.hpp"
#include "glm/gtc/matrix_transform.hpp"
#include "glm/gtc/type_ptr.hpp"
#include "camera.h"
#include "shader.h"
#include <QOpenGLWindow>
#include <QOpenGLWidget>
#include <QGLWidget>
#include <QGLFunctions>
#include <QtOpenGL>
#include <QOpenGLFunctions>
另外:如果包含了 glew.h头文件,就不要在包含glad.h头文件