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

文章目录

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

前言

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

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

工具:Cmake 3.25.0 +MinGW-w64


PS:工具

 Cmake:

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第1张图片

MinGW-w64

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

Downloads - MinGW-w64GCC for Windows 64 & 32 bitshttps://www.mingw-w64.org/downloads/OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第2张图片

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

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

一、GLFW

        1、下载源码:Download | GLFWGLFW source code and binary distribution download links.OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第3张图片https://www.glfw.org/download.html

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

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第4张图片

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第5张图片

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第6张图片

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

-lopengl32   -lglfw3

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第7张图片

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

二、GLAD

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

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第8张图片 

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

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

        3、接着将include文件夹下的glad文件夹和KHR文件夹都放到目标项目的头文件夹include         OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第9张图片

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第10张图片

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

 OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第11张图片

         6、然后就是在使用的时候,加上#include就好了

三、SOIL

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第12张图片

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

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第13张图片

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

 OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第14张图片

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第15张图片

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

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第16张图片

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

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第17张图片

        7、接着就是使用的时候记得加上#include就好 

四、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文件夹下即可

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第18张图片

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第19张图片

        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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第20张图片

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

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第21张图片

         然后也是选择用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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第22张图片

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第23张图片

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第24张图片

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第25张图片

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第26张图片

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第27张图片

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

OpenGL学习笔记:1、配置GLFW+GLAD+SOIL+GLM+ASSIMP_第28张图片

        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,学习,c++,图形渲染,windows)