已经17天了,我正在努力使用QT在OpenGL中编写一个简单的程序,但在Google上搜索的所有教程都失败了.我使用msvc2010使用-opengl桌面编译了我的QT 5.0.1以使桌面opengl默认.
我读过Sean Harmer的教程,但它依赖于QT来解决opengl函数.
据一些人说,在QT中不可能使用glew,因为QT内置的库可以防止glew包含它的标题,但根据Sean Harmer HERE,它是可能的(但是没有解释如何).
即使使用QGLWidget,我也无法使用OpenGL扩展.
现在我想要的是将所有OpenGL函数分开使用,并将QT中的所有窗口函数分开,即QT对OpenGL没有干扰.
如果有人用简单的三角形示例解释我的程序并使用任何扩展名,我会非常感激...
我在我的项目中使用了glew库,并且在我的程序开始时使用了#include glew.h,但是在编译时它给出了错误:glwidget.obj:-1:错误:LNK2001:未解析的外部符号imp_ _glewGenVertexArrays
我的简历
QT += core gui opengl
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Trial
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
glwidget.cpp
HEADERS += mainwindow.h \
glwidget.h
FORMS += mainwindow.ui
RESOURCES += \
resources.qrc
win32: LIBS += -L$$PWD/../../../../../OpenGL/glew-1.9.0/lib/ -lglew32s
INCLUDEPATH += $$PWD/../../../../../OpenGL/glew-1.9.0/include
DEPENDPATH += $$PWD/../../../../../OpenGL/glew-1.9.0/include
win32: PRE_TARGETDEPS += $$PWD/../../../../../OpenGL/glew-1.9.0/lib/glew32s.lib
Run Code Online (Sandbox Code Playgroud)
通过glewInfo输出:GLEW版本1.9.0 pixelformat的报告功能1在NVIDIA公司的GeForce GT 540M/PCIe/SSE2上运行支持OpenGL版本4.3.0
void GLWidget::initializeGL()
{
GLenum err = glewInit();
if(err != GLEW_OK) …Run Code Online (Sandbox Code Playgroud) 到目前为止,我所做的是:
#!/bin/bash
exec 2> >(sed 's/^/ERROR= /')
var=$(
sleep 1 ;
hostname ;
ifconfig | wc -l ;
ls /sfsd;
ls hasdh;
mkdir /tmp/asdasasd/asdasd/asdasd;
ls /tmp ;
)
echo "$var"
Run Code Online (Sandbox Code Playgroud)
这确实在每个错误行的开头都加上了ERROR =,但先显示所有错误,然后显示stdout(而不是按执行顺序显示)。
如果我们跳过将输出存储在变量中并直接执行命令,则输出将按所需顺序排列。
任何专家的意见将不胜感激。