Qt编译OpenGL程序遇到的问题

软件版本:
Qt 4.8.5

按照网上的例程(http://www.qiliang.net/old/nehe_qt/lesson01.html),跑了一下基于Qt Creator的OpenGL。由于上述例程的Qt版本较老(例程是02年的,汗!),在新的Qt环境下产生诸多问题,好在一一得到了解决,现说明如下:

1、需要在工程文件.pro中添加对OpenGL的支持:

QT += opengl(记得清理项目后再编译!)

否则会出现一大堆类似error: undefined reference to `[email protected]‘、error: undefined reference to `[email protected]‘的问题。

2、对于设置窗口Title的函数setCaption:

[error: ‘setCaption‘ was not declared in this scope]

在新版本中已经废弃,改而用setWindowTitle()函数代替:

setCaption("Qt Open-GL");——>setWindowTitle("Qt Open-GL");

3、对于glu开头的函数,如gluPerspective():

[error: ‘gluPerspective‘ was not declared in this scope]

需要包含头文件

#include <GL/glu.h> 

4、用到QKeyEvent,需要包含其头文件

[error: invalid use of incomplete type ‘struct QKeyEvent‘]

#include <QKeyEvent>
时间: 2024-10-24 11:17:04

Qt编译OpenGL程序遇到的问题的相关文章

QT 开发opengl 错误1

很多人在用QT写OpenGL程序的时候需要使用glu开头的函数,但是却发现怎么也没法使用,例如:gluPerspective函数,用来建立透视投影矩阵的. 其实不仅仅是QT,包括VC编译器,也都会出现上面的问题. 错误: 错误:C3861: 'gluPerspective': identifier not found 解决办法: 在pro文件中加入:LIBS += glut.lib glut32.lib 但是前提是你将这两个lib文件放入了qt的bin目录下,我的电脑安装的对应目录是: C:\Q

解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!

本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开Windows下的项目出现乱码,选择编码为"GB2312"即可! 现在主要来说说程序运行后无法显示中文或者出现乱码的情况,被这个问题困扰了很久,网上看了很多资料贴子都没有解决,所有该添加的都添加了都没办法, http://bbs.csdn.net/topics/390610841?page=

在windows直接运行Qt编译出来的可执行程序出现了如下提示错误: this application has requested the runtime to terminate it an unusual way.

在windows直接运行Qt编译出来的可执行程序出现了如下提示错误: this application has requested the runtime to terminate it an unusual way. please contact the application’s support team for more information. 出现这种情况是因为缺少该程序运行所需要的动态链接库. 解决方法一:修改系统环境变量,在Path中添加Qt的bin路径就OK了.不过这只能在本机运

Solaris 10下Qt编译Oracle 10g驱动

上回书讲到<Oracle 10g在Solaris 10中安装详解>,现在开始用Qt来编译下Oracle 10g驱动吧!这样就可以通过Qt程序联入Oracle数据库了! Oracle的环境变量: ORACLE_BASE=/oracle ORACLE_HOME=$ORACLE_BASE/product/10.0.2 Qt的编译文件在Solaris 10下的路径: /export/home/qt-4.3.1/qt-X11-commercial-src-4.3.1 Qt的环境变量: QTDIR=/us

VIM+qmake编译示例程序HelloQt出错问题的解决(文件名一定要使用.cpp,否则就会默认使用gcc编译,当然通不过)

之前看到很多初学Qt的Linux友们在使用qmake编译第一个HelloQt或者HelloWorld程序时报错,并且始终找不到原因. 前几天我也遇到了同样的问题,我用的是<精通Qt4编程>书上的例子,将代码用Vim输入之后qmake,再make结果报错N行, 大部分是说什么什么为定义之类的,查了半天发现是只要把开头的几行#include<QtGui/..>里的文件包含进去就会出错, 但是不包含也不行,(后来发现网上不少人也在问这个问题,可是没说解决的),花了几个小时时间无果而终.

Qt Quick + OpenGL + Bullet初次測试

Qt Quick + OpenGL + Bullet初次測试 眼下Qt的Quick模块已经表现得很出色,并且可以预留接口来渲染OpenGL场景.一般来说,已经可以满足大部分编程须要了.这次呢.尝试使用结合一些技术,来做一些有趣儿的事情--将Bullet整合进来,并且进行測试. 蒋彩阳原创文章.首发地址:http://blog.csdn.net/gamesdev/article/details/44284317.欢迎同行前来探讨. 有关Bullet的选择,事实上也是有一番讲究的.眼下Bullet的

Qt Quick + OpenGL + Bullet初次测试

Qt Quick + OpenGL + Bullet初次测试 目前Qt的Quick模块已经表现得非常出色,而且可以预留接口来渲染OpenGL场景.一般来说,已经能够满足大部分编程需要了.这次呢,尝试使用结合一些技术,来做一些有趣儿的事情--将Bullet整合进来,并且进行测试. 蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/details/44284317.欢迎同行前来探讨. 有关Bullet的选择,其实也是有一番讲究的.目前Bullet的

Qt编译mysql以及创建表后进行导入操作

鉴于许多同学对Qt编译myql总是不能成功,出现各种问题,今天特此写出本教程,希望能够帮到需要的同学. 首先,需要明白编译的目的和原理. 目的:Qt 5.2版本以前都是不带mysql驱动的,所以需要进行编译mysql数据库驱动,只有编译完成后才能被Qt加载上.如果你安装的是Qt5.2以后版本的,那就不需要了,因为在后来的版本中,Qt官方增加这一模块. 可以在Qt的安装插件目录下查看自己的驱动是否已经存在.例如我的在目录: C:\Qt\4.8.2\plugins\sqldrivers.可以看到当前

Qt编译错误GL/gl.h: No such file or directory

最近把系统换成ubuntu14.04的了,在安装Qt后,我运行了里面的一个示例,发现编译有错: 其实我以前就遇到过这个问题,我当时给我的朋友写了一封邮件,他告诉我说是因为系统中没有安装OpenGL库导致的,所以我们要安装OpenGL库及其工具: 这个是他当时给我回的邮件,我发现我现在的系统中没有最后一个软件,可能是因为新系统换了比较新的软件源的关系吧.我的做法是运行这个命令 [email protected]:~$ sudo apt-get install freeglut3-dev 之后就可以