glGenBuffers(1, &VBO)未定义

#ifndef OPENGLWIDGET_H
#define OPENGLWIDGET_H
#include <QOpenGLWidget>
#include <QOpenGLFunctions_3_3_Compatibility>
class OpenGLWidget : public QOpenGLWidget
{
public:
    explicit OpenGLWidget(QWidget *parent = 0);
    void initializeGL();
    void paintGL();
    void resizeGL(int w, int h);
    unsigned int VBO;
};
void OpenGLWidget::initializeGL()
{



}
void OpenGLWidget::resizeGL(int w, int h)
{
    //当窗口大小改变时,调整界面坐标显示高度和宽度
    glViewport(0, 0, w, h);

}
void OpenGLWidget::paintGL()
{

    //清除之前图形并将背景设置为黑色
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glClearColor(0.1f, 0.2f, 0.1f, 1.0f);
    float vertices[] = {
        -0.5f, -0.5f, 0.0f,
         0.5f, -0.5f, 0.0f,
         0.0f,  0.5f, 0.0f
    };

    glGenBuffers(1, &VBO);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();

}

#endif // OPENGLWIDGET_H

已经引用了头文件为什么还是未定义?

img


在qt帮助文档中显示这个是存在的

1).pro文件中添加 QT += opengl
(2)包含头文件#include <QGLFunctions>
(3)OpenGLWidget  继承QGLFunctions类:
class OpenGLWidget  : public QOpenGLWidget, protected QGLFunctions

参考:

既然用Qt,那么就用Qt提供QOpenGLFunctions里函数接口替换相应的OpenGL函数,基本上都是一一对应的。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632