注:本文可转载,转载请著名出处: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. [OpenGL]配置GLFW(超详细)

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

  2. XCODE 6.1.1 配置GLFW

    最近在学习opengl的相关知识.第一件事就是配环境(好烦躁).了解了一下os x下的OpenGL开源库,主要有几个:GLUT,freeglut,GLFW等.关于其详细的介绍可以参考opengl网站( ...

  3. Cmakelists.txt中配置glfw

    qt中需要用cmake编译工程,且需要用到OpenGL库glfw,如何给Cmakelist.txt配置glfw的动态链接库? 在Cmakelists.txt添: find_package(glfw3 ...

  4. 【C++】从零开始的CS:GO逆向分析2——配置GLFW+IMGUI环境并创建透明窗口

    [C++]从零开始的CS:GO逆向分析2--配置GLFW+IMGUI环境并创建透明窗口   使用的环境:Visual Studio 2017,创建一个控制台程序作为工程文件 1.配置glfw 在git ...

  5. Win7_Ultimate + VS2010 + openGL 配置

    Win7_Ultimate + VS2010 + openGL 配置 0. 前言 OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性. (1)与C语言紧密结合. O ...

  6. 获取显示屏的个数和分辨率 --- 通过使用OpenGL的GLFW库

    获取显示屏的个数和分辨率 - 通过使用OpenGL的GLFW库 程序 #include <iostream> // GLFW #include <GLFW/glfw3.h> i ...

  7. OpenGL 使用GLFW创建全屏窗口

    OpenGL 使用GLFW创建全屏窗口 GLFW库里面的glfwCreateWindow()函数是用来创建窗口的函数. 这样函数的原型是: GLFWwindow* glfwCreateWindow(i ...

  8. Xcode环境下OpenGL C++ GLFW开发环境搭建

    操作系统版本:MacOS Mavericks 10.9.2 Xcode版本:5.0.1 OpenGL版本:4.10 GLFW版本:3.0.4 一.GLFW编译 1.下载并安装cmake(当前最新版本为 ...

  9. Mac平台Clion配置GLFW+GLAD的项目

    前期的准备工作详见LearnOpenGL CN 看这篇教程的前提是假设你已经编译好了GLFW文件夹以及下载好了GLAD,不会的话可以看我的另一篇 文章的前部分: 配置 Clion新建一个项目,CMak ...

随机推荐

  1. 你绝对想不到R文件找不到(cannot resolve symbol R)的原因

    你绝对想不到R文件找不到(cannot resolve symbol R)的原因 最近在项目开发中 Android Studio 的 R 文件突然找不到了.IDE 中出现了以下提示 cannot re ...

  2. PHP站内搜索

    1.SQL语句中的模糊查找 LIKE条件一般用在指定搜索某字段的时候, 通过"% 或_" 通配符的作用实现模糊查找功能,通配符可以在前面也可以在后面或前后都有. 搜索以PHP100 ...

  3. Eclipse默认编码设置

    eclipse 默认编码居然是GBK,js文件默认编码是ISO-....怎么可以这样呢?都修改成UTF8的方法:1.windows->Preferences...打开"首选项" ...

  4. MySQL最常用日期时间函数

    日期和时间函数 可能的需求: 当前时间是多少.下个月的今天是星期几.统计截止到当前日期前 3 天的收入总和-- 上述需求就需要使用日期和时间函数来实现: MySQL服务器中的三种时区设置: ①系统时区 ...

  5. netty——私有协议栈开发案例

    netty--私有协议栈开发案例 摘要: 在学习李林峰老师的Netty权威指南中,觉得第十二章<私有协议栈开发>中的案例代码比较有代表性,讲的也不错,但是代码中个人认为有些简单的错误,个人 ...

  6. Linux IO barrier

    I/O顺序问题是一个比较综合的问题,它涉及的层次比较多,从VFS page cache到I/O调度算法,从IO子系统到存储外设.而Linux I/O barrier就是其中重要的一部分. 可能很多人认 ...

  7. java 无法连接ftp服务器(500 OOPS: cannot change directory)

    在使用java连接ftp服务器时可能会出现无法连接的情况,检查代码是没有错误的,这时就应该考虑一下服务器端的情况了: 首先用在本地打开命令窗口,输入:ftp ftp服务器IP,窗口会提示你输入用户名密 ...

  8. Swiper使用方法

    Swiper使用方法 1.首先加载插件,需要用到的文件有swiper.min.js和swiper.min.css文件. <!DOCTYPE html> <html> <h ...

  9. pthread的lowlevellock

    pthread的lowlevellock是futex的最简单的锁应用.也是pthread其它同步原语最基本的锁.lowlevellock提供(或实现)了三种锁(方法),一是基于0或1的互斥的锁规则,二 ...

  10. c# 操作monogodb的一些简单封装

    public interface IDataBaseCore { } public class BasicData : IDataBaseCore { } public class Filter    ...