本人使用的环境

操作系统:windows10

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

 
二、工程配置
在工程源码路径下新建一个文件夹glut,放入刚刚解压得到的五个文件夹
 
修改工程相应的pro文件,在末尾添加:
win32: LIBS += -L$$PWD/glut/ -lglut32
win32: LIBS += -L$$PWD/glut/ -lglut INCLUDEPATH += $$PWD/glut
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工程使用第三方库——Qt下使用glut库的更多相关文章

  1. 【转】Qt下使用glut库

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

  2. windows系统中给qt工程添加第三方库

    · TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt SOURCES += main.cpp LIBS ...

  3. 基于QT开发的第三方库

    基于Qt开发的第三方库 分类: Qt2014-02-12 11:34 1738人阅读 评论(0) 收藏 举报 QT第三方库   目录(?)[+]   文章来源:http://blog.csdn.net ...

  4. Linux下编译boost库和qt和ImageMagick

    需要把整个PCIE的工程移植到Linux下,当初就是用cmake来管理的工程的.但是命令行之类的还是需要改动.改动还不少,cmake里面很多东西都依赖于windows.包括我用cmake重新管理的工程 ...

  5. 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上编译.安装开源代码,所以必须 ...

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

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

  7. windows下Qt Creator5.1.0编写程序以及调用OpenCV库

    系统说明 最近使用opencv编写程序,程序编的差不多就学习使用QT加个界面,首先声明下本人的系统和使用的软件版本, 系统: windows xp QT IDE:QT Creator5.1.0 Ope ...

  8. QT工程构建目录下,将生成的中间文件和可执行文件分离

    在QT工程中,当我们选择了构建目录后,编译生成程序后,总会发现在debug目录下会有混淆着各类文件,如下图 很多时候,我们又仅仅只需要可执行文件或者自定义的动态链接库.如下图 当然,如果不觉得麻烦,有 ...

  9. Qt工程打包发布

    Qt版本 5.7.1 1.添加环境变量 在..\Qt5.7.0\5.7\msvc2013_64\bin(..省略了盘符,例如我的是D:\Qt\Qt5.7.0\5.7\msvc2013_64\bin) ...

随机推荐

  1. Swift基础语法学习总结

    Swift基础语法学习总结Swift高级语法学习总结Swift语法总结补充(一) 1.基础  1.1) swift还是使用// 和/* */ 来注释,并且/* */允许多行注释. 1.2) swift ...

  2. 我的android学习经历33

    在Activity中添加菜单 1.在res目录下新建文件夹menu 右击res,选择new->Folder,Folder name写为menu 2.在新建的menu目录下新建一个xml文件 右击 ...

  3. Javasocket1

    转载自http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html java socket编程 一,网络编程中两个主要的问题 一个是如 ...

  4. Android:Butter Knife 8.0.1配置

    github地址:https://github.com/GarsonZhang/butterknife Butter Knife Field and method binding for Androi ...

  5. linux应用程序开发-文件编程-库函数

    ---恢复内容开始--- c库函数文件操作独立于具体的系统平台,可移植性较好. 库函数-创建和打开 FILE*fopen(const char*filename,const char*mode) mo ...

  6. spring bean的初始化

    scope:作用域   singleton  prototype  request session   默认为singleton lazy-init:default=false ,false ,tru ...

  7. js之oop <五>对象序列化(js的JSON操作)

    js对象序列化的过程,就是对象转换为JSON的过程.JSON.stringify() 将对象序列化成JSON.(接收对象,输出字符串) var obj = {x:2,y:3}; var str = J ...

  8. 0020 Linux 文件操作命令

    1. 创建文件 touch 文件名 2. 删除文件 rm 文件名 3. 复制文件 cp 源文件 目录 4.剪切文件 mv 源文件 目标文件 5.重命名文件 mv 源文件名 新文件名 6.改变文件权限 ...

  9. node.js基础 1之基本概念常识

    node.js 好牛逼的样子哦 很火,很腻害~~~~ 有关node.js的版本常识: 一般用最新的稳定版本,非稳定版本用于测试,其中包括api的不稳定等. 起一个web服务器: ndoejs可以自定义 ...

  10. Django1.9开发博客(12)- i18n国际化

    国际化与本地化的目的为了能为各个不同的用户以他们最熟悉的语言和格式来显示网页. Django能完美支持文本翻译.日期时间和数字的格式化.时区. 另外,Django还有两点优势: 允许开发者和模板作者指 ...