我是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();
}
(这都错了,不是吗?..)