OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)

整体运行环境框架

OpenGL是Windows平台在安装VS以后自带的,还需要一下其他的库:
GLFW(窗口和处理用户输入)+GLAD(解决繁琐的检索函数位置问题)+CMake(从源码编译GLFW库)

最后将这些库在VS的项目-属性中进行配置,引入头文件后编译成功即为环境搭建完成。

GLFW

GLFW是用于OpenGL的由C语言编写的库。

下载源码版:GLFW的下载地址

作用

GLFW可以:

  1. 创建OpenGL上下文
  2. 定义窗口参数
  3. 处理用户输入

使用CMake编译

CMake是一个工程文件生成工具。用户可以使用预定义好的CMake脚本,根据自己的选择(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程文件。

CMake需要源代码文件夹(这里使用上面下载的glfw文件根目录)和用于存储二进制文件的目标文件夹(新的空文件夹)。

在这里插入图片描述

配置步骤

  1. 选定源文件和目标文件夹,点击Configure按钮。
  2. 选择generator,这里选择Vistual Studio。
  3. 保留默认配置,再点击Configure按钮。
  4. 点击Generate按钮,再build文件夹就会生成项目文件。
  5. 在build文件夹打开GLFW.sln(使用Visual Studio打开,里面已经包含了解决方案的配置),点击build solution选项(生成->生成解决方案)。
  6. 编译好的库文件可以直接在build/src/Debug/glfw3.lib找到。

编译器如何找到库和头文件的位置?

  1. 创建一个文件夹,里面包含Libs和Include两个文件夹,分别存放OpenGL工程用到的所有第三方库和头文件。
  2. 每次新建一个工程时都需要告诉IDE/编译器在哪能找到这些目录:link我们的项目和刚刚编译的库文件——项目-属性按照下图配置。

在这里插入图片描述

  1. 为了编译的时候能链接GLFW库,把GLFW link到project。
  2. 同时由于Windows系统在安装VS后,自带opengl32.lib,可以直接将该库link到project中。

在这里插入图片描述

GLAD

使用GLAD的必要性——存储函数位置的操作太繁琐

OpenGL驱动版本众多,它大多数函数的位置都无法在编译时确定下来,需要在运行时查询。为了获得函数的位置,需要将其保存到一个函数指针中来进行使用。

//define the function's prototype
typedef void (*GL_GENBUFFERS)(GLsizei, GLuint*);
//find the function and assign it to a function pointer
GL_GENBUFFERS glGenBuffers = (GL_GENBUFFERS)wglGetProcAddress("glGenBuffers");
//function can now be called as normal
unsigned int buffer;
glGenBuffers(1,&buffer);

上面的声明并查找指针的过程过于繁琐,而GLAD就可以解决这个问题。

GLAD安装方法

进入GLAD的web service,按照下图配置,点击Generate。

在这里插入图片描述

将得到的zip解压后,将Include下的两个文件夹放到刚才创建的Include文件夹中,然后将glad.c文件添加到项目工程中。

在这里插入图片描述

如图所示,编译通过,环境配置成功。

补充

  1. 有些库是由lib和dll共同组成的,lib会存储dll的入口函数,这时还要按照下述配置配置dll的存放目录。
    在这里插入图片描述
  2. cmake之前的源代码的include文件包含.h,用于在Vistual Studio编译器中查找相应位置。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值