Qt包含了opengl模块支持opengl绘制,但是不包含glut工具库,如果要使用glut库,该怎么做呢?下面来简述一下Qt下怎么安装glut库。OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用。如果需要在程序里直接使用OpenGL,会有很多非常恶心的预备工作要做,而且可能还要专门为平台的差异写一些代码。要跳过这些工作,可以用一个utility库,直接使用它提供的函数,就不用操心那些细节了。这样的库新一点的有GLEW,因为开源所以安装相对方便(大不了丢进去一起编译),但各种教程和书里常见的是闭源的GLUT。由于GLUT的作者已经很久没更新了(最后更新于2001年!)。

所以其他人另外做了一个接口兼容GLUT的freeglut库,开源而且一直在维护中。freeglut是glut的超集,支持glut所有的api,跨平台(MS-Win,Linux,Mac OS均支持),并且有长期维护,十分可靠。

1.下载

Linux 下安装
Linux 下一般使用开源的 freeglut,安装相对于 windows 比较方便,比如 Ubuntu 下安装只要一行命令:

$ sudo apt-get install build-essential freeglut3 freeglut3-dev binutils-gold

Windows 下安装

1)需要glut库的请下载 glut-3.7.6-bin.zip (GLUT for Win32 dll, lib and header file )(已经十几年没更新过了所以就是这个版本了!)

下载地址:https://user.xmission.com/~nate/glut.html
2)freeglut库里面有两个版本,都包含32和64位的,根据Qt的配置自己选择:

下载地址:http://www.transmissionzero.co.uk/software/freeglut-devel/

Visual Studio:freeglut 3.0.0 MSVC Package

MinGW :freeglut 3.0.0 MinGW Package

2.环境配置:

msvc环境配置:(64位版本):

1) .解压后将freeglut文件中的bin文件下的x64文件下的freeglut.dll,拷贝至QT的安装路径D:\Qt\Qt5.9.4\5.9.4\msvc2017_64\bin目录下;
2) .解压后将freeglut文件中的include文件下的GL文件,拷贝至QT的安装路径D:\Qt\Qt5.9.4\5.9.4\msvc2017_64\include目录下;
3) .解压后将freeglut文件中的lib文件下的x64文件下的freeglut.lib,安装路径D:\Qt\Qt5.9.4\5.9.4\msvc2017_64\lib目录下;

MinGW环境配置(32位版本):

1) .解压后将freeglut文件中的bin文件下的freeglut.dll,拷贝至QT的安装路径D:\Qt\Qt5.9.4\5.9.4\mingw53_32\bin目录下;
2) .解压后将freeglut文件中的include文件下的GL文件,拷贝至QT的安装路径D:\Qt\Qt5.9.4\5.9.4\mingw53_32\include目录下;
3) .解压后将freeglut文件中的lib文件下的libfreeglut.a、libfreeglut_static.a文件,拷贝至QT的安装路径D:\Qt\Qt5.9.4\5.9.4\mingw53_32\lib目录下;

3.切换到自己的程序中,在 **.pro 文件中添加:

QT += opengl

MSVC版本:

#第一种就是直接加据对路径
LIBS += D:/Qt/Qt5.12.6/5.12.6/msvc2017_64/lib/freeglut.lib  D:/Windows/Kits/10/Lib/10.0.17763.0/um/x64/OpenGL32.Lib

#第二种就是直接加库文件,这个的前提是你的库文件必须在系统目录或者工程编译生成目录build-untitled-Desktop_Qt_5_12_6_MSVC2017_64bit-Debug下
LIBS += freeglut.lib OpenGL32.Lib

#第三种就是多个库在同一个文件夹下的时候,连接使用
LIBS += -LD:/Qt/Qt5.12.6/5.12.6/msvc2017_64/lib -lfreeglut -lOpenGL32

#第四种就是相对路径./表示生成目录build-untitled-Desktop_Qt_5_12_6_MSVC2017_64bit-Debug
LIBS += -L./  -lfreeglut -lOpenGL32

MinGW版本:

LIBS += -LD:/Qt/Qt5.12.6/5.12.6/mingw73_32/lib  -llibfreeglut -lopengl32

LIBS模板

#$$OUT_PWD表示编译生成的那个目录,$$PWD表示.pro文件的那个目录
#win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib
#else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/debug/ -lmylib
#else:unix: LIBS += -L$$OUT_PWD/../../../projects/mylib/ -lmylib

4.在*****.cpp中加入#include <GL/glut.h>,这样就可以使用glut中的函数了。

5.记得调用初始化函数后,才能使用。

 glutInit(&argc, argv);

6. 下面来看一个简单的例子:

#include <windows.h>
#include <GL/glut.h>
void init(void)
{glClearColor(1.0, 1.0, 1.0, 0.0);glMatrixMode(GL_PROJECTION);gluOrtho2D(0.0, 200.0, 0.0, 160.0);
}
void lineSegment(void)
{glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 0.0, 0.0);glBegin(GL_LINES);glVertex2i (180, 15);glVertex2i (10, 145);glEnd();glFlush();
}int main(int argc, char **argv)
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutInitWindowPosition(50, 100);glutInitWindowSize(400, 300);glutCreateWindow("Example OpenGL Program");init();glutDisplayFunc(lineSegment);glutMainLoop();
}

运行效果如下图所示:

Qt5.9.4中配置opengl的glut库(Windows)相关推荐

  1. 在vc++6.0中配置OpenGL环境

    OpenGL入门学习--写给想用计算机画图的朋友 OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. 1.与C语言紧密结合. OpenGL命令最初就是用C语言函数 ...

  2. 如何用python和pip安装在txt文件中配置好版本的库包

    如何用python和pip安装在txt文件中配置好版本的库包 文章目录: 一.建立库包版本的txt配置文件 二.安装txt配置文件中的库包 有时候你自己用python实现一个项目,然后想把它在gith ...

  3. 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )

    文章目录 I . 动态库 与 静态库 II . 编译动态库 III. Android Studio 使用第三方动态库 IV . Android Studio 关键代码 V . 博客资源 I . 动态库 ...

  4. PCL 1.8.1 在VS2015中配置 包含目录、库目录和附加依赖项

    PCL 1.8.1 在VS2015中配置 包含目录.库目录和附加依赖项 1. 包含目录 2. 库目录 3. 附加依赖项 如果想要永久配置,需要在属性管理器中进行. 1. 包含目录 C:\Program ...

  5. Mac平台配置OpenGL(glut,glew)

    //oepngl库 opengl原生库 gl*  随opengl一起发布 opengl实用库  glu*   随opengl一起发布 opengl实用工具库glut  glut*   需要下载配置安装 ...

  6. 关于在vs2013中配置opengl红宝书第八版环境

    转自 http://blog.csdn.net/qq821869798/article/details/45247241 本人刚开始学习opengl,买了一本opengl红宝书第八版, 第一个例子研究 ...

  7. openGL,glut库安装(vs2013)

    最近要开始做三维重建,需要使用opencv 和 openGL,第一次使用OpenGL,当然要从装glut库来开始. glut 库文件下载地址如下:http://download.csdn.net/do ...

  8. VS2010下配置使用OpenGL的glut库

    在win7(windows7 ultimate SP1)下成功安装VS2010(Visual Studio 2010 ultimate x86). 下载glut:http://www.opengl.o ...

  9. vs2017中配置openGL环境

    qt项目中本身自带OpenGL模块,但是函数名或用法与原始的OpenGL还是有些区别 所以,如果不想使用QtOpenGL,而是引入OpenGL时,可以按照以下步骤配置好环境: 实验室同学"会 ...

最新文章

  1. 奇思妙想——我心中的智能自行车
  2. at24c16如何划分出多个读写区_51单片机向at24c16EPROM写入一个数据每问题,写入多个数据,读出的数据都一样...
  3. ML之FE:基于BigMartSales数据集利用Featuretools工具实现自动特征工程之详细攻略daiding
  4. 南下事业篇——深圳 深圳(回顾)
  5. ASP.NET和PHP全面对比
  6. volatile和synchronized的区别与联系
  7. Log4j的应用实例
  8. 获取并编译linux源码,linux – 从源代码编译软件:如何收集依赖项列表?
  9. “秃如其来”的90后,造就了一个蒸蒸日上的产业
  10. Shell_Shell调用SQLPlus简介(案例)
  11. rails用generate为两个模型创建has_and_belongs_to_many中间表
  12. 这是一台家庭计算机重启无效,我买了一台二手计算机,配置还可以,但有时会自动重启机器,这是为什? 爱问知识人...
  13. Response.Clear() Response.ClearContent()和Response.ClearHeaders()之间的区别
  14. 常见OJ提交结果对照表
  15. 图像的灰度化、二值化
  16. 从刘维尔方程到Velocity-Verlet算法
  17. DEAP2.1——数据包络分析(DEA——CCR、BCC)
  18. 从零开始设计一个漂亮的网页(译)
  19. GEA无法运行Python 程序
  20. Jetson Agx Xavier平台调试AR0820相机分辨率缩放3848x2168 to 1920x1080

热门文章

  1. [BZOJ2957]楼房重建
  2. android 悬浮窗的检查
  3. 修改live mail路径
  4. mybatis查询时间段数据
  5. 高通ADSP和AP间的通讯过程
  6. 静态内部类实现单例模式
  7. CE修改Eternium永恒之金【基础篇】
  8. 物联网 | NB-IoT与LoRa简介
  9. CMD进入c盘根目录的方法
  10. 每个游戏开发者都需要知道的游戏网络知识