vs2019配置glfw、glad等环境

写在前面

  打算学习一下openGL。原文地址。这里主要记录一下自己配置环境的过程以及遇到的问题,毕竟原文使用的是vs2015,而我用的是vs2019。

构建GLFW

  首先去官网下载源码包:
在这里插入图片描述

  解压:
在这里插入图片描述

  在开始下一步之前,我们还需要 C M a k e CMake CMake

CMake

   C M a k e CMake CMake是一个工程文件生成工具。用户可以使用预定义好的 C M a k e CMake CMake脚本,根据自己的选择(像是 V i s u a l S t u d i o , C o d e : : B l o c k s , E c l i p s e Visual Studio, Code::Blocks, Eclipse VisualStudio,Code::Blocks,Eclipse)生成不同 I D E IDE IDE的工程文件。这允许我们从 G L F W GLFW GLFW源码里创建一个 V i s u a l S t u d i o 2019 Visual Studio 2019 VisualStudio2019工程文件,之后进行编译。首先从官网下载安装 C M a k e CMake CMake
在这里插入图片描述

  当 C M a k e CMake CMake安装成功后,你可以选择从命令行或者 G U I GUI GUI启动 C M a k e CMake CMake,由于我不想让事情变得太过复杂,我们选择用 G U I GUI GUI C M a k e CMake CMake需要一个源代码目录和一个存放编译结果的目标文件目录。源代码目录我们选择 G L F W GLFW GLFW的源代码的根目录,然后我们新建一个文件夹,选中作为目标目录。
在这里插入图片描述
在这里插入图片描述

  在设置完源代码目录和目标目录之后,点击 C o n f i g u r e Configure Configure(设置)按钮,让 C M a k e CMake CMake读取设置和源代码。我们接下来需要选择工程的生成器:
在这里插入图片描述

   C M a k e CMake CMake会显示可选的编译选项用来配置最终生成的库。这里我们使用默认设置,并再次点击 C o n f i g u r e Configure Configure(设置)按钮保存设置。保存之后,点击 G e n e r a t e Generate Generate(生成)按钮,生成的工程文件会在你的 b u i l d build build文件夹中。
在这里插入图片描述

编译

  在 b u i l d build build文件夹里可以找到 G L F W . s l n GLFW.sln GLFW.sln文件,用 V i s u a l S t u d i o 2019 Visual Studio 2019 VisualStudio2019打开。因为 C M a k e CMake CMake已经配置好了项目,所以我们直接点击 B u i l d S o l u t i o n Build Solution BuildSolution(生成解决方案)按钮,然后编译的库 g l f w 3. l i b glfw3.lib glfw3.lib(注意我们用的是第3版)就会出现在 s r c / D e b u g src/Debug src/Debug文件夹内。
在这里插入图片描述
库生成完毕之后,我们需要让IDE知道库和头文件的位置。有两种方法:

扫描二维码关注公众号,回复: 12265117 查看本文章
  1. 找到IDE或者编译器的/lib和/include文件夹,添加GLFW的include文件夹里的文件到IDE的/include文件夹里去。用类似的方法,将glfw3.lib添加到/lib文件夹里去。虽然这样能工作,但这不是推荐的方式,因为这样会让你很难去管理库和include文件,而且重新安装IDE或编译器可能会导致这些文件丢失。
  2. 推荐的方式是建立一个新的目录包含所有的第三方库文件和头文件,并且在你的IDE或编译器中指定这些文件夹。我个人会使用一个单独的文件夹,里面包含Libs和Include文件夹,在这里存放OpenGL工程用到的所有第三方库和头文件。这样我的所有第三方库都在同一个位置(并且可以共享至多台电脑)。然而这要求你每次新建一个工程时都需要告诉IDE/编译器在哪能找到这些目录。

  完成上面步骤后,我们就可以使用 G L F W GLFW GLFW创建我们的第一个 O p e n G L OpenGL OpenGL工程了!

我们的第一个工程

  首先,打开Visual Studio,创建一个新的项目。如果VS提供了多个选项,选择Visual C++,然后选择Empty Project(空项目)(别忘了给你的项目起一个合适的名字)。现在我们终于有一个空的工作空间了,开始创建我们第一个OpenGL程序吧!

链接

  为了使我们的程序使用GLFW,我们需要把GLFW库链接(Link)进工程。这可以通过在链接器的设置里指定我们要使用glfw3.lib来完成,但是由于我们将第三方库放在另外的目录中,我们的工程还不知道在哪寻找这个文件。于是我们首先需要将我们放第三方库的目录添加进设置。
  要添加这些目录(需要VS搜索库和include文件的地方),我们首先进入Project Properties(工程属性,在解决方案窗口里右键项目),然后选择VC++ Directories(VC++ 目录)选项卡(如下图)。在下面的两栏添加目录(这两个目录的内容会在文章后面展示):
在这里插入图片描述

  这里你可以把自己的目录加进去,让工程知道到哪去搜索。你需要手动把目录加在后面,也可以点击需要的位置字符串,选择选项,之后会出现类似下面这幅图的界面,图是选择Include Directories(包含目录)时的界面:
在这里插入图片描述

  这里可以添加任意多个目录,IDE会从这些目录里寻找头文件。所以只要你将GLFW的Include文件夹加进路径中,你就可以使用<GLFW/…>来引用头文件。库文件夹也是一样的。
  现在VS可以找到所需的所有文件了。最后需要在Linker(链接器)选项卡里的Input(输入)选项卡里添加glfw3.lib这个文件:
在这里插入图片描述

  要链接一个库我们必须告诉链接器它的文件名。库名字是glfw3.lib,我们把它加到Additional Dependencies(附加依赖项)字段中(手动或者使用选项都可以)。这样GLFW在编译的时候就会被链接进来了。除了GLFW之外,你还需要添加一个链接条目链接到OpenGL的库,但是这个库可能因为系统的不同而有一些差别:

  1. 如果你是Windows平台,opengl32.lib已经包含在Microsoft SDK里了,它在Visual Studio安装的时候就默认安装了。由于这篇教程用的是VS编译器,并且是在Windows操作系统上,我们只需将opengl32.lib添加进连接器设置里就行了。
  2. 在Linux下你需要链接libGL.so库文件,这需要添加-lGL到你的链接器设置中。如果找不到这个库你可能需要安装Mesa,NVidia或AMD的开发包,这部分因平台而异(而且我也不熟悉Linux)就不仔细讲解了。接下来,如果你已经添加GLFW和OpenGL库到连接器设置中,你可以用如下方式添加GLFW头文件:在这里插入图片描述
      GLFW的安装与配置就到此为止。

GLAD

  到这里还没有结束,我们仍然还有一件事要做。因为OpenGL只是一个标准/规范,具体的实现是由驱动开发商针对特定显卡实现的。由于OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。所以任务就落在了开发者身上,开发者需要在运行时获取函数地址并将其保存在一个函数指针中供以后使用。取得地址的方法因平台而异,在Windows上会是类似这样:
在这里插入图片描述

  你可以看到代码非常复杂,而且很繁琐,我们需要对每个可能使用的函数都要重复这个过程。幸运的是,有些库能简化此过程,其中GLAD是目前最新,也是最流行的库。

配置GLAD

  GLAD是一个开源的库,它能解决我们上面提到的那个繁琐的问题。GLAD的配置与大多数的开源库有些许的不同,GLAD使用了一个在线服务。在这里我们能够告诉GLAD需要定义的OpenGL版本,并且根据这个版本加载所有相关的OpenGL函数。
  打开GLAD的在线服务,将语言(Language)设置为C/C++,在API选项中,选择3.3以上的OpenGL(gl)版本(我们的教程中将使用3.3版本,但更新的版本也能正常工作)。之后将模式(Profile)设置为Core,并且保证生成加载器(Generate a loader)的选项是选中的。现在可以先(暂时)忽略拓展(Extensions)中的内容。都选择完之后,点击生成(Generate)按钮来生成库文件。
在这里插入图片描述

  GLAD现在应该提供给你了一个zip压缩文件,包含两个头文件目录,和一个glad.c文件。将两个头文件目录(glad和KHR)复制到你的Include文件夹中(或者增加一个额外的项目指向这些目录),并添加glad.c文件到你的工程中。
在这里插入图片描述

  在这里展示一下我的includes文件和libs文件(之前添加的目录):
在这里插入图片描述

  包含刚才粘贴进来的两个目录以及之前下载的glfw文件中的include目录下的文件。
在这里插入图片描述

  经过前面的这些步骤之后,你就应该可以将以下的指令加到你的文件顶部了:
在这里插入图片描述

  点击编译按钮应该不会给你提示任何的错误,到这里我们就已经准备好继续学习下一节去真正使用GLFW和GLAD来设置OpenGL上下文并创建一个窗口了。记得确保你的头文件和库文件的目录设置正确,以及链接器里引用的库文件名正确。如果仍然遇到错误,可以先看一下评论有没有人遇到类似的问题,请参考额外资源中的例子或者在下面的评论区提问。
  顺便一提,这个glfw3.lib文件应该是64位的,我在vs中选择x86平台编译时会产生以下冲突:
在这里插入图片描述
  把平台改成x64就可以了。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xiji333/article/details/112787674