[英]How do I fix GL.h Compiling Errors in QT?
我在使用 QT 中的 OpenGL 的自定义glwidget
构建应用程序时遇到问题。 GL.h
从第 1157 行开始抛出 492 错误,语句为
语法错误:'void' 应该以 ';' 开头 "(使用窗口)。
glwidget.h
#ifndef GLWIDGET_H
#define GLWIDGET_H
#include <QOpenGLFunctions>
#include <QGLWidget>
class GLWidget : public QGLWidget, protected QOpenGLFunctions
{
Q_OBJECT
public:
explicit GLWidget(QWidget* parent = 0);
void initializeGL();
void paintGL();
void resizeGL(int w, int h);
};
#endif // GLWIDGET_H
glwidget.cpp
#include "glwidget.h"
#include <gl/GL.h>
#include <gl/GLU.h>
GLWidget::GLWidget(QWidget* parent) : QGLWidget(parent)
{
}
void GLWidget::initializeGL()
{
glClearColor(0,0,0,1);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHT0);
glEnable(GL_LIGHTING);
glEnable(GL_COLOR_MATERIAL);
}
void GLWidget::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}
void GLWidget::resizeGL(int w, int h)
{
}
我的问题的解决方案是什么? 此外,我正在使用最新的 Windows 开发套件,并且我在 Z069391E2E9CB6BBF8982CE15D386813 上使用 QT 5.14.0(MSVC 2017,32 位)。
所有错误都从第 1157 行开始,然后贯穿代码的 rest; 我已经粘贴了包含所有错误的代码部分,它们都在 WINGDIAPI 和 typedef 行上,而不是我排除了最后几行,它们只是没有错误的 ifdef 和 endif 内容。
放
#ifdef _WIN32
#include <windows.h>
#endif
就在每次出现#include <GL/gl.h>
之前。
也不要考虑目录/文件名的情况。 它是大写的GL/
和小写的gl.h
。 在 Windows 上没关系,但如果你在 Linux 和 FreeBSD 上编译,这是正确的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.