文章目录

  • 前言
  • 一、GLFW
  • 二、GLAD
  • 三、SOIL
  • 四、GLM
  • 五、ASSIMP
  • 总结

前言

在网上参考了许多搭建OpenGL开发环境的文章博客,但是基本上看到的都是基于Visual Studio的,而笔者习惯了使用Clion+MinGW,再加上配置这些玩意,着实要人头疼得紧,所以打算写一篇博客记录一下。

实际上在另外一台电脑上已经配置过一遍了,但是因为换了台主机,而两台主机整体架构不太一样,所以还需要在这台主机上面再搭一遍

工具:Cmake 3.25.0 +MinGW-w64


PS:工具

Cmake:

Download | CMakehttps://cmake.org/download/

MinGW-w64

(看主机配置,MinGW也行):

Downloads - MinGW-w64GCC for Windows 64 & 32 bitshttps://www.mingw-w64.org/downloads/

因为一些原因,笔者没法直接在官网上下载MinGW-w64的源码,所以又在网上找了一份资源:

链接:百度网盘 请输入提取码
提取码:scd1

一、GLFW

1、下载源码:Download | GLFWGLFW source code and binary distribution download links.https://www.glfw.org/download.html

如果不嫌麻烦,或者原下载下来的文件中的库对本地环境不适配,可以选择下载Source Package下的源码:Source Package,然后在本地主机上用Cmake+MinGW32-make进行编译,得到适配本机的库libglfw3.a和glfw3.dll

或者可以直接下载官网上按Windows操作系统32位或者64位的编译好的压缩包,笔者选择的是64位的压缩包(这个按照自己主机操作系统的位数来,好像32位的在32和64上都可以)

2、将下载得到的压缩包解压到某个文件夹下(你能找到就行),然后将解压后文件里include文件夹下的GLFW文件夹(里的两个头文件)放到目标项目的头文件夹下即可

3、接着将lib-mingw-w64下的库文件放到项目的库文件夹lib下

4、 接着设置CMakeList.txt文件,将include头文件和lib库文件都包含进项目 :

-lopengl32   -lglfw3

5、 接着就是在cpp文件中#include<glfw>就好了

二、GLAD

、1、下载源码:https://glad.dav1d.de/Web generator for the Glad toolhttps://glad.dav1d.de/

按照自己所需要的配置下载即可

然后点击GENERATE,下载glad.zip压缩包即可

2、接着同样将glad.zip压缩包解压到某个自己能找到的文件夹即可

3、接着将include文件夹下的glad文件夹和KHR文件夹都放到目标项目的头文件夹include         

4、然后将src文件夹下的glad.c文件放到目标项目的src文件夹下

5、接着设置CmakeList.txt文件,将glad、KHR文件夹和glad.c文件加入进项目中

6、然后就是在使用的时候,加上#include<glad/glad.h>就好了

三、SOIL

         1、下载源码,但是去官网:http://www.lonesock.net/soil.html   不知道为什么一直连不上,显示空白页,所以又去网上找了一份资源,在github上:https://github.com/DeVaukz/SOILhttps://github.com/DeVaukz/SOIL

2、下载下来后解压缩到自己能找到的文件夹下

3、接着使用Cmake进行编译,其中源码目录选择解压缩后的文件夹,编译目录选择解压缩后文件夹中的build文件夹

然后点击configure按钮,选择MinGW Makefiles选项,接着再点击一次configure,然后点击Generate按钮,此时build文件夹中已经有些文件了,但还没有目标库文件

4、接着打开命令行,并到build文件夹下,运行mingw32-make (-16) 命令,若能正常运行产生对应目标文件libSOIL.a和libSOIL.dll即可,若不能则需要按照提示去修改文件或者设置中提示错误的地方,完成后应该产生三个文件

PS:这一步需要先下载MinGW,并将其bin目录添加到电脑高级设置的系统变量的path中

5、接着将解压后的文件夹下的src文件夹下的SOIL.h头文件放到项目include文件夹中,将上述产生的三个库文件放到项目lib文件夹中,同时将.dll文件放到cmake-build-debug文件夹下

6、编辑CMakeList.txt文件,将头文件SOIL.h包含进项目和libSOIL.a库文件链接上项目

PS:-lSOIL 链接需要放到-lopengl 链接之前

7、接着就是使用的时候记得加上#include<SOIL/SOIL.h>就好

四、GLM

1、相对于其他的库,其实GLM就是一系列头文件,无需编译,直接下载文件后使用即可

下载源码:Releases · g-truc/glm · GitHubOpenGL Mathematics (GLM). Contribute to g-truc/glm development by creating an account on GitHub.https://github.com/g-truc/glm/releases

2、下载后解压到某个自己能找到的文件夹下

3、然后直接将其放到项目的include文件夹下即可

4、然后编辑CMakeList.txt文件,将其包含进项目

5、然后就是在使用的时候,记得加上#include对应的头文件就好了

五、ASSIMP

1、下载源码:

Releases · assimp/assimp · GitHubThe official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure. - Releases · assimp/assimphttps://github.com/assimp/assimp/releases

在Github上下载自己想要的对应版本的源码,笔者选择的是5.1.6

2、下载后解压到自己能找到的文件夹下

3、接着需要使用Cmake和MinGW进行编译,在解压后的文件夹中新建一个build文件夹,然后使用Cmake编译,并将源目录选择解压后的文件夹,编译目录选择新建的那个build文件夹

然后也是选择用MinGW Makefiles进行Configure,两次,接着点击Generate按钮进行生成文件,此时完成后Cmake界面应该如上所示,此时build文件夹中应该已经有了一些文件,但还未生产目标库文件

PS:这一步如果没有安装好DirectX SDK,可能会报错。可以直接到Microsoft官网上去下载:

https://www.microsoft.com/zh-CN/download/details.aspx?id=6812https://www.microsoft.com/zh-CN/download/details.aspx?id=6812

接着按照安装软件的导向一步步来即可,而在安装DirectX过程中可能会遇到s1023的错误,而这需要先将本机上的 Visual C++ 2010 Redistributable Package version 10.0.40219 卸载(x86和x64都要),然后在接着安装DirectX。在安装完DirectX后可以再从Microsoft官网上再下回来:

https://www.microsoft.com/zh-CN/download/details.aspx?id=26999https://www.microsoft.com/zh-CN/download/details.aspx?id=26999        4、接着再build文件夹下打开命令行,并运行mingw32-make命令,完成后应该产生三个文件:bin目录(build目录里的)下的libassimp.dll文件,lib目录下的libassimp.dll.a,和contrib\zlib目录下的libzlibstatic.a

5、接着将这三个文件放到项目的lib库文件夹下,同时将libassimp.dll放到cmake-build-debug文件夹下,并将原解压文件夹下的include中的assimp文件夹放到项目的头文件夹include下

6、接着编辑CmakeList.txt文件,将libassimp.dll库文件链接上项目,将assimp头文件包含进项目

7、然后就是在使用的时候,记得在开头处加上#include对应头文件就好了


总结

配置的这些OpenGL的各种库,其中GLFW是负责创建管理窗口和上下文的,这个基本上是进行OpenGL进行编程所必须的,而GLAD是负责访问OpenGL规范接口的,相对来说他是GLEW的升级版,在某些程度上可以用GLEW进行代替(除了初始化不一样,其他大多GL函数是一样使用的),SOIL是简易OpenGL图像库(Simple OpenGL Image Library)的缩写,主要是负责进行加载和处理图像的,相对来说,他有SOIL2的升级版可以进行替代使用,GLM(OpenGL Mathematics )库主要是负责矩阵等数学运算的C++头文件数学库,ASSIMP库主要是负责进行模型加载的,可以导入各种模型文件并进行统一格式导出。

基本上这些库都是进行OpenGL编程所必要的库,这其中GLAD和GLM是头文件库,可以直接包含头文件进行使用,而GLFW、SOIL和ASSIMP是需要库链接后才能进行使用的。而这其中相对于GLFW在官网上既有源码文件也有在各种环境下编译好了的库文件,SOIL和ASSIMP基本上都是源码需要在本地上进行编译好了才能实现适配的,而且相对于网上大多数的使用Visual Studio进行编译实现的,使用Clion的还需要自己使用MinGW去找各种方式进行编译,相对来说确实有点麻烦。不过总的来说也就是分为四部:一、在网上找到资源或者源码,下载下来;二、使用Cmake对源码Configure和Generate一下,进行build;三、使用MinGW进行编译,在build文件夹下运行mingw32-make进行编译,得到库文件;四、将库文件和头文件,链接和包含进项目。

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP相关推荐

  1. glut glfw glad SOIL glm freetype等配置

    a. 配置glut https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 链接下载glut.下载之后解压得到5个文件gl ...

  2. openGL学习笔记_配置开发环境第一个窗口

    https://learnopengl-cn.github.io/ openGL学习网站 开发语言  C++ https://www.khronos.org/registry/OpenGL/index ...

  3. OpenGL 学习笔记 II:初始化 API,第一个黑窗,游戏循环和帧率,OpenGL 默认垂直同步,glfw 帧率

    前情提要: 上一篇: OpenGL 学习笔记 I:OpenGL glew glad glfw glut 的关系,OpenGL 状态机,现代操作系统的窗口管理器,OpenGL 窗口和上下文 OpenGL ...

  4. OpenGL学习笔记(八):进一步理解VAO、VBO和SHADER,并使用VAO、VBO和SHADER绘制一个三角形

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7888 ...

  5. 【OpenGL学习笔记⑧】——键盘控制正方体+光源【冯氏光照模型 光照原理 环境光照+漫反射光照+镜面光照】

    ✅ 重点参考了 LearnOpenGL CN 的内容,但大部分知识内容,小编已作改写,以方便读者理解. 文章目录 零. 成果预览图 一. 光照原理与投光物的配置 1.1 光照原理 1.2 投光物 二. ...

  6. 【OpenGL学习笔记】地月系

    OpenGL学习笔记2-地月系 文章目录 OpenGL学习笔记2-地月系 前言 运行结果 纹理图片 一.TexturePool 1.**TexturePool.h** 2.**TexturePool. ...

  7. 【OpenGL学习笔记⑥】——3D变换【旋转的正方体 实现地月系统 旋转+平移+缩放】

    ✈️ 文章目录 零. 成果预览图 一.3D立方体的顶点数组 二.纹理旋转 三.纹理缩放 四.画n个3D图形 五.轨道的数学公式 六.深度缓冲(Z 缓冲) 七.完整代码 八.参考附录: 神器的正方体 ☁ ...

  8. oracle11g中用asmlib配置磁盘组,ASM学习笔记_配置ASMLIB磁盘组

    ASM学习笔记_配置ASMLIB磁盘组 目录 1 ASMLIB Introduction 2 虚拟机添加一个共享磁盘(块设备) 3 下载,安装ASMLIB 4 配置,使用ASMLib 磁盘组 #### ...

  9. Linux学习笔记12——配置ftp、squid、Tomcat、Samba、MySQL主从

    Linux学习笔记12 Linux学习笔记12 配置FTP服务 配置pure-ftpd 开机启动 上传下载文件 配置vsftpd CentOS 70安装配置Vsftp服务器 搭好vsftp之后出现55 ...

  10. OpenGL学习笔记:矩阵变换

    文章目录 缩放 glm矩阵表示 glm缩放矩阵实现 位移 齐次坐标 glm位移矩阵实现 旋转 沿x轴旋转 沿y轴旋转 沿z轴旋转 沿任意轴旋转 glm旋转矩阵实现 矩阵的组合 glm矩阵组合使用 接上 ...

最新文章

  1. Nature:复杂菌群空间分布研究
  2. java怎么创建子程序_JVM执行子程序
  3. 最后一次作业-----课程总结
  4. android R文件丢失
  5. Linq 常用操作(增删改)
  6. 面试官让我说出2种@Transactional注解的失效场景,我一口气给他说了六种
  7. Leetcode--136. 只出现一次的数字
  8. laravel 模型(2)
  9. 深度神经进化大有可为?Uber详解如何用它优化强化学习 | 5篇论文
  10. 网页优化系列三:使用压缩后置viewstate
  11. 不让EditText打开就获取焦点
  12. 关于proc的介绍,比较详细
  13. HTML5与phonegap接口对比
  14. idea中常用快捷键
  15. Repast Simphony——案例:僵尸感染人类
  16. html中将字体设置成透明的,解决css设置背景透明,文字不透明_html/css_WEB-ITnose
  17. eclipse使用maven新建类目录时,提示The folder is already a source folder
  18. 用计算机计算实发工资,工资税率计算器 个税反推应发工资计算公式
  19. 登录前的人机验证VAPTCHA
  20. int(4)、int(8)、int(11) 分别占用几个字节 ?

热门文章

  1. Android studio底部Logcat模块不见了以及Locat日志中包含了很多无用的错误日志筛选方法
  2. Centos 修改主机名称
  3. Pytroch相关操作(1)
  4. 从韩春雨事件看学术成果的辨别
  5. 子母钟运用在什么领域,设备如何调试,天穹告诉你子母钟系统授时的意义
  6. adb 隐藏/删除 app
  7. Blender学习笔记(3)建模|blender
  8. 迅速学tar命令对文件的打包压缩与解压缩
  9. CSS固定定位 将模块固定到版心右边
  10. python单引号和什么的作用几乎是一样的_python里的单引号和双引号的有什么作用...