ps:这个说的很明白,尤其是win10环境下用mingw环境时编程时碰到的问题,
1.加 windows.h
2.在.pro 添加libs
 
 
 
本人使用的环境

操作系统:windows10

Qt构建套件:qt-mingw4.8.5 + mingw4.4.0
Qt Creator版本:3.6.1
 
本教程配置针对工程而言,每个工程需要单独配置。
 
一、下载并解压glut库
我使用的版本下载地址为:
 
解压后得到以下五个文件

 
二、工程配置
在工程源码路径下新建一个文件夹glut,放入刚刚解压得到的五个文件夹
 
修改工程相应的pro文件,在末尾添加:
  1. win32: LIBS +=-L$$PWD/glut/-lglut32
  2. win32: LIBS +=-L$$PWD/glut/-lglut
  3. INCLUDEPATH += $$PWD/glut
  4. DEPENDPATH += $$PWD/glut

 这几行代码告诉编译器链接时要到哪里去找外部链接库。除了添加链接代码外,在Qt Creator里,可以右键工程名,选择-添加库
 
 接着选择外部库
 
点击库文件的“浏览”按钮,选择要链接的lib文件。
如果头文件和库文件不再同一个目录,点击包含路径的“浏览”按钮,选择相应的头文件。
本次lib和头文件在一个目录,故浏览添加一次就可以了。

 
 
 
完成添加,pro文件中会加上相应代码

 
为了兼容性,最好把 glut.lib也链接进工程(添加步骤一样)。
 
三、使用
准备工作好了,接下来就是在代码中使用了。只要在相应的文件包含以下头文件,就可以直接使用glut*开头的函数了。
  1. #include<windows.h>
  2. #include<glut.h>
注意,如果是mingw编译器,必须添加<windows.h>这个头文件,不然编译出来的程序无法运行。(vs编译器可以不用加。)
 
用mingw编译时,会有以下警告:

 可以简单修改头文件,

 这样再次编译就不会有警告了。glut.h默认的只读的,需要在windows自带的资源管理器下修改后才能编辑。
使用mingw的编译器,会默认定义宏__MINGW32__(VC系列编译器为_MSC_VER)。还是看不懂的同学可以百度“条件编译”。
 
一劳永逸,针对编辑器设置(mingw版本)
声明{mingwDir}为你的mingw编译器(不是Qt套件)的安装路径。
 
一、下载解压,得到五个文件
二、把解压得到的glut.h放到{mingwDir}\include\GL文件夹。

 
三、把解压得到的glut.lib和glut32.lib放到{mingwDir}\lib文件夹
 
四、把解压得到的glut.dll和glut32.dll放到C:\Windows\System32和C:\Windows\SysWOW64(32位电脑没这个文件夹
 
五、准备结束,使用时直接包含以下头文件
  1. #include<gl/glut.h>
并在pro文件末尾(随便什么地方都可以啦)添加
 LIBS += -lglut32

 之后就可以使用glut*系列的函数了。
 
总结:
1、说白了就是为工程添加外部链接库。
2、{mingDir}的文件路径替换为MVC的文件路径(通常路径为(VS2013)X:\Program Files (x86)\Microsoft Visual Studio 12.0\VC),就是VS版本的一劳永逸了。
3、同样是mingw编译器,为工程设置需要包含<windows.h>,为编辑器设置则不用,这里我自己也没搞懂。

【转】Qt下使用glut库的更多相关文章

  1. Qt工程使用第三方库——Qt下使用glut库

    本人使用的环境 操作系统:windows10 Qt构建套件:qt-mingw4.8.5 + mingw4.4.0 Qt Creator版本:3.6.1   本教程配置针对工程而言,每个工程需要单独配置 ...

  2. Qt下Eigen矩阵函数库的添加

    第1步: 下载一个Eigen文件包,在官网下即可: http://eigen.tuxfamily.org/index.php?title=Main_Page 第2步: 用Qt随便建一个GUI工程,在. ...

  3. QT中使用Glut库

    用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...

  4. Qt下Armadillo矩阵函数库的添加

    其实本文严格说只能算VS2013添加Armadillo教程,因为为了省事,用的是VS2013编译器版本的Qt,Armadillo也直接用了自带例子中的blas_win64_MT.dll.blas_wi ...

  5. Qt下libusb-win32的使用方法(转)

    源:Qt下libusb-win32的使用方法 之前一直找不到适合WIN7下的Tiny6410的USB下载软件,正好这几天开始学习USB,所以打算自己写一个专门用于Tiny6410的WIN7下的USB下 ...

  6. Qt下libusb-win32的使用方法

    之前一直找不到适合WIN7下的Tiny6410的USB下载软件,正好这几天开始学习USB,所以打算自己写一个专门用于Tiny6410的WIN7下的USB下载软件. 发现了libusb这个库可以用作无驱 ...

  7. Windows平台下Qt中glut库的使用

    用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是说“glutSolidSphere”: 找不到标识符 ...

  8. OpenGL学习之windows下安装opengl的glut库

    OpenGL学习之windows下安装opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.  Windows环境下的GLUT下载地址:(大小约为15 ...

  9. Fedora15下搭建QT开发环境及编译QT(提前一键安装完,qt编译所有必需库 yum install gcc-c++ libXtst-devel freetype freetype-devel fontconfig-devel libXrender-devel )

    看了不少linux上编译qt的文章,实际上直接通过yum 安装qt是最方便的,请参考<yum安装qt> 不过初步接触fedora,为了了解一下如何在linux上编译.安装开源代码,所以必须 ...

随机推荐

  1. sphinx全文检索功能 | windows下测试 (一)

    前一阵子尝试使用了一下Sphinx,一个能够被各种语言(PHP/Python/Ruby/etc)方便调用的全文检索系统.网上的资料大多是在linux环境下的安装使用,当然,作为生产环境很有必要部署在* ...

  2. java IO之AutoCloseable,Closeable和Flushable接口

    有3个接口对于流类相当重要.其中两个接口是Closeable和Flushable,它们是在java.io包中定义的,并且是由JDK5添加的.第3个接口是AutoColseable,它是由JDK7添加的 ...

  3. CALayer 2 详解 -----转自李明杰

    CALayer2-创建新的层   本文目录 一.添加一个简单的图层 二.添加一个显示图片的图层 三.为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UICol ...

  4. Android6.0中的权限

    Android6.0相比之前的Android版本有一个很大的不同点,就是动态的获取权限.之前我们需要什么权限只需要在Manifest文件中声明即可,在6.0中,又新增了运行时权限的动态检测. Andr ...

  5. maven pom.xml

    什么是pom?    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的u ...

  6. CSS大美集

    细节1……………………………………………………………………………… 一.当文字与图片在一行,需要将文字与图片底对齐,可以这样写: <div>记住密码<img src="im ...

  7. Redux教程1:环境搭建,初写Redux

    如果将React比喻成士兵的话,你的程序还需要一位将军,去管理士兵(的状态),而Redux恰好是一位好将军,简单高效: 相比起React的学习曲线,Redux的稍微平坦一些:本系列教程,将以" ...

  8. 用JQuery Validate框架,在IE8下验证报错问题解决

    网站后台用了JQuery Validate框架,版本是jQuery Validation Plugin 1.8.1 因为用的时间比较久了,一直没有更新新版本. 最近公司信息录入员有调整,没有IE11浏 ...

  9. OC基础--类的本质

    类的本质: 类的本质其实也是一个对象(类对象),只要有了类对象, 将来就可以通过类对象来创建实例对象 程序中第一次使用该类的时候被创建,在整个程序中只有一份.此后每次使用都是这个类对象,它在程序运行时 ...

  10. php 数据库select函数//待编辑

    <?php $con = mysql_connect("localhost","root","root"); if (!$con) { ...