Qt5,Ubuntu。使用Opengl构建应用程序失败

时间:2016-12-12 09:36:48

标签: c++ qt ubuntu opengl qt5

我是Qt5的新手,希望用交互式3D图形制作一个简单的程序。我创建了一个新的Qt Widgets应用程序,按照.pro中的QT += opengl,.h中的#include<QtOpenGL>手册,这就是全部。我甚至不添加任何额外的代码,我点击“构建项目”并得到这个:

  

/opt/qtsdk/5.5/gcc/include/QtGui/qopenglext.h:117:ошибка:typedef   'PFNGLDRAWRANGEELEMENTSPROC'已初始化(使用decltype代替)   typedef void(APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum模式,   GLuint开始,GLuint结束,GLsizei计数,GLenum类型,const void   *指数); 'GLenum'未在此范围内声明'GLuint'未在此范围内声明'GLsizei'未在此范围内声明   'GLenum'未在此范围内声明为primary-expression   在'const'typedef void之前(APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)   (GLenum模式,GLuint开始,GLuint结束,GLsizei计数,GLenum类型,   const void * indices); typedef'PFNGLTEXIMAGE3DPROC'已初始化   (使用decltype代替)typedef void(APIENTRYP PFNGLTEXIMAGE3DPROC)   (GLenum目标,GLint水平,GLint内部格式,GLsizei宽度,   GLsizei高度,GLsizei深度,GLint边界,GLenum格式,GLenum   type,const void * pixels);

并且一直打开,直到我停止构建,因为我得到第8140错误,这不是最后一次。 :\
请帮忙!!尝试了一切,不能再忍受了 我通过在线安装安装了Qt5(lib和IDE),然后尝试修复它们:

$ apt-get install libgl1-mesa-dev    
$ sudo aptitude install mesa-common-dev      
$ sudo apt-get install build-essential libfontconfig1

等。尝试了一切,设法找到我的问题(虽然谷歌说nothig有用解决我的问题)
操作系统:Linux Mint 17.1 Cinnamon 32bit

视频卡:英特尔公司第二代核心处理器系列集成图形控制器(总废话。也许,这是一个问题?)

OpenGL版本:3.0 Mesa 10.1.3(QtOpengl是否使用默认的Оpengl,预先安装在我的笔记本电脑上,或者使用自己的Opengl?虽然,Opengl和Qt的版本如何相关?Qt4-5甚至可以使用旧版本Opengl版本?)

Qt版本:4.8.6(至少控制台是这样说的,但我并不感觉项目不是用Qt5库构建的。我怎样才能明确指定构建项目所需的版本?)

自动检测Qt版本:桌面Qt 5.5.1 GCC 32位

QMake版本:2.01a

自动检测编译器:GCC;调试器:GDB

非常需要你的帮助!感谢

我唯一的代码:
那是mainscene.h:

#ifndef MAINSCENE_H
#define MAINSCENE_H

#include <QMainWindow>
#include<QtOpenGL>
#include<QGLWidget>

class MainScene : public QMainWindow
{
       protected:
          void initializeGL();
          void resizeGL(int w, int h);
          void paintGL();

       public:
          Scene3D(QWidget* parent = 0);
};

#endif // MAINSCENE_H

这就是SimpleOpengl.pro:

QT += core gui
QT += opengl
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = SimpleOpengl
TEMPLATE = app
SOURCES += main.cpp
        mainscene.cpp
HEADERS  += mainscene.h

那是main.cpp:

#include "mainscene.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainScene w;
    w.show();

    return a.exec();
}

(这都错了,不是吗?..)

0 个答案:

没有答案