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. [高斯消元] POJ 2345 Central heating

    Central heating Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 614   Accepted: 286 Des ...

  2. 基础篇-初步认识PE格式

    1 PE(Portable Executable)格式,是Win32环境可移植可执行文件(如exe.dll.vxd.sys和vdm等)的标准文件格式.PE格式衍生于早期建立在VAX(R)VMS(R)上 ...

  3. SYN攻击

    一.TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服 ...

  4. 在CDH5.5.0上安装Phoenix1.2

    1.下载CLABS版本的Phoenix CLABS_PHOENIX-4.5.2-1.clabs_phoenix1.2.0.p0.774-el6.parcel和manifest.json文件 2.将文件 ...

  5. Hollister Outlet Store

    (link to hollisterco site), It's a major try. After a photographer's viewpoint, Which roughly splend ...

  6. ppp数据帧的格式

    参考http://blog.chinaunix.net/uid-11639156-id-2379044.html

  7. Java 单列模式(Singleton)

    单例模式(Singleton) 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 目的:使得类的一个对象成为系统中的唯一实例. 如何保证一个类只有一个实例并且这个实例易于被访问呢? 我们都 ...

  8. Java Json Object 互转

    官方网址: http://json-lib.sourceforge.net/ 需要准备的jar包 1. json-lib-2.4-jdk15.jar        目前最新版, 下载地址  http: ...

  9. 探索javascript----this的指向问题

    *this只和执行环境有关,和声明环境无关.谁调用this,this就指向谁. *this的指向分为四种: 1.作为普通函数调用: 2.作为对象的方法调用:   指向对对象,但用新变量引用该方法时候, ...

  10. java的数据类型转换

    java中有八种基本数据类型分别是字节型byte.整型int.短整型short.长整型long.单精度浮点型float.双精度浮点型double.字符型char.布尔型boolean.这些基本数据类型 ...