注:本文可转载,转载请著名出处:http://www.cnblogs.com/collectionne/p/6937644.html。本文还会修改,如果不在博客园(cnblogs)发现本文,建议访问上面的链接访问最新文章。

部分资料来自LearnOpenGL

学OpenGL的都会知道,OpenGL只提供了绘图功能,创建窗口是需要自己完成的。这就需要学习相应操作系统的创建窗口方法,比较复杂,并且每个操作系统都不同。为简化创建窗口的过程,可以使用专门的窗口库,例如GLUT、GLFW等。由于GLUT已经是90年代的东西了(不过后来还有freeglut),而GLFW是新的,因此建议使用GLFW。

使用GLFW之前需要先进行配置,那怎么配置呢?本文将会介绍配置方法。

下载GLFW

进入GLFW官方网站glfw.org,点击右上角的download,看见如下界面:

这时,可以点击Windows pre-compiled binaries标题下面的32-bit Windows binaries或64-bit Windows binaries(此方法仅限Windows,且建议选择32-bit Windows binaries),下载已经编译好的binary。也可以点击Source package标题下面的Source package下载源代码自己编译。

配置

直接下载binary

点击32-bit Windows binaries进行下载(可能上不了,这时可以尝试刷新),这时浏览器下面会弹出下载提示。

下载之后,解压压缩包,得到的文件夹应如下:

选择适合自己编译器的库,将文件夹里的glfw3.dll、glfw3.lib和glfw3dll.lib拷贝到一个新文件夹,例如D:\libs\。使用时可以只使用glfw3.dll(静态链接),也可以使用glfw3dll.lib和glfw3.dll(动态链接)。结束。

编译源代码

下载的binary可能没有适合自己编译器的,这时就只能自己编译了。

点击Source package进行下载(可能上不了,这时可以尝试刷新),这时浏览器会弹出下载提示。

下载之后,解压压缩包,得到的文件夹应如下(只要有deps、include、src、CMakeLists.txt等文件或文件夹就可以了):

CMake

自己编译GLFW需要使用CMake。CMake是一个可以通过源代码生成相应编译器的项目文件的软件。进入CMake官方网站cmake.org,点击右上角的download进入下载页面:

建议选择最新版(目前是3.8.2)。找到Binary deistributions,选择适合自己平台的下载(可以选择Installer,也可以选择ZIP),我选择的是Windows win32-x86 Installer(虽然我电脑是64位)。注意,如果你电脑上有CMake 3.4或更早的版本,请卸载

如果是下载ZIP,直接解压就可以用了;如果是Installer,则需要安装,点击下载的.msi文件,根据指示进行安装。安装完毕后,进入CMake所在文件夹:

进入bin文件夹,里面有cmake.exe和cmake-gui.exe两个文件。前者是控制台版的,后者是GUI版的。

生成项目文件

使用cmake-gui.exe

打开cmake-gui.exe,应出现如下界面:

在Where is the source code栏里,选择GLFW源代码所在目录(即前面的include、src等文件夹所在目录),我这里是D:/libs/glfw。

在Where to build the binaries栏里,选择要将项目文件生成在哪个文件夹里,可以不存在。我这里选择的是D:/libs/glfw/build。

点击Configure。如果有"Build directory does not exist, should I create it?"的提示,点击Yes。(以VS2015为例)

选择需要生成哪个编译器的项目文件。这里直接选择默认的。点击Finish。等待生成完毕,如果出现下列界面就成功了。

点击Generate,等待生成完毕。如果底下显示"Generating done"则生成成功。接下来可以直接点击Open Project,或找到生成的GLFW.sln(或者其它扩展名)手动打开。

使用cmake.exe

如果直接使用cmake.exe,安装CMake时默认没有将cmake.exe所在文件夹添加到PATH,因此需要设置PATH。打开命令行(Windows为Win+R输入cmd),使用下列指令:

set PATH=C:\Program Files (x86)\CMake\bin;%PATH%
cd glfw
md build
cd build
cmake ..

注意需要将cd glfw中的glfw换成GLFW源码所在的文件夹(和Where is the source code一样,但注意必须在C盘)。输入完以上指令后,在GLFW源码文件夹中出现了一个build文件夹,里面有GLFW的项目文件。

编译

现在只要编译就可以了,这一点各IDE大同小异。以VS2015为例,点击上面的生成,选择生成解决方案,等待编译完成。编译日志很长,一共有195行。

现在可以看一下,在build文件夹里,是不是出现了一个名为glfw3.lib的文件(VS2015在build/src/Debug目录下)。不过直接编译只能生成glfw3.lib,没有DLL,因此是静态链接。

Done!

使用GLFW

要使用GLFW,打开IDE,在包含路径(include directories)里加上glfw3.lib所在的路径,在附加依赖项(additional dependencies)里加上glfw3.lib,就可以使用GLFW啦!

Todo

本文偏向于Windows,没怎么介绍其它操作系统配置。以后会补充!

[OpenGL]配置GLFW(超详细)的更多相关文章

  1. centos7 yum搭建lnmp环境及配置wordpress超详细教程

    yum安装lnmp环境是最方便,最快捷的一种方法.源码编译安装需要花费大量的人类时间,当然源码编译可以个性化配置一些其它功能.目前来说,yum安装基本满足我们搭建web服务器的需求. 本文是我根据近期 ...

  2. linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  3. [OpenGL]配置GLFW

    注:本文可转载,转载请著名出处:http://www.cnblogs.com/collectionne/p/6937644.html.本文还会修改,如果不在博客园(cnblogs)发现本文,建议访问上 ...

  4. Mysql双机热备配置(超详细多图版)

    一.双击热备介绍 1.基本概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active- ...

  5. Spring Boot 日志配置方法(超详细)

    默认日志 Logback : 默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了. 从上图 ...

  6. 【cocos 2d-x】VS2013+cocos2d-x3.3Final+Adriod交叉编译环境配置(超详细版)

    本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder  微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...

  7. Zookeeper 集群安装配置,超详细,速度收藏!

    今天,栈长分享下 Zookeeper 的集群安装及配置. 下载 下载地址:http://zookeeper.apache.org/ 下载过程就不说了,我们下载了最新的zookeeper-3.4.11. ...

  8. VS2015ASP.NET MVC5项目中Spring.NET配置方法(超详细)

    首先,在ASP.NET MVC5项目右键,如下图所示,选择“管理Nuget程序包...” 然后,在弹出的页面的搜索框中输入“spring.web”,在返回结果中选择Spring.Web和Spring. ...

  9. dubbo配置清单-超详细版

    服务发布者 在服务发布者的springboot主配置文件application.properties中添加dubbo配置 #dubbo服务名 spring.dubbo.application.name ...

随机推荐

  1. 如何求文件File的字节数

      [java]代码库 import java.io.*;   /**  * 获取文件的字节数  */   class FileInputStreamS {     public static voi ...

  2. 在html中显示Flash的代码

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...

  3. 主题:iframe高度的自适应

    在项目开发中,遇到的一个问题.弹出的页面中有iframe.例 <iframe src="www.baidu.html" width="100%" char ...

  4. CAS 单点登录原理

    访问服务: 浏览器发送请求访问应用系统 定向认证: 应用系统重定向用户请求到 SSO 服务器. 用户认证:用户身份认证. 发放票据: 认证通过后,SSO 服务器会产生一个随机的 Service Tic ...

  5. Package template (html/template) ... Types HTML, JS, URL, and others from content.go can carry safe content that is exempted from escaping. ... (*Template) Funcs ..

    https://godoc.org/text/template GoDoc Home About Go: text/templateIndex | Examples | Files | Directo ...

  6. Java Message Service

    en.wikipedia.org/wiki/Java_Message_Service Messaging is a form of loosely coupled distributed commun ...

  7. machine learning for hacker记录(1) R与机器学习

    开篇:首先这本书的名字很霸气,全书内容讲的是R语言在机器学习上面的应用,一些基本的分类算法(tree,SVM,NB),回归算法,智能优化算法,维度约减等,机器学习领域已经有很多成熟的R工具箱,毕竟这个 ...

  8. 基于springboot的Dubbo的常规总结

    1.引入jar包: <!-- Spring Boot Dubbo 依赖 --> <dependency> <groupId>com.alibaba.spring.b ...

  9. Android 启动过程介绍【转】

    本文转载自:http://blog.csdn.net/yangwen123/article/details/8023654 一般开机过程大致可以分为三个大阶段: 1. OS级别,由bootloader ...

  10. Spring源码-加载和IOC部分

    源代码和注释放在了github上,包括加载过程的注释和getBean部分的 地址: https://github.com/lvxingzhi/spring-framework-4.3.9-note.g ...