- 前言
- 一、GLFW
- 二、GLAD
- 三、SOIL
- 四、GLM
- 五、ASSIMP
- 总结
在网上参考了许多搭建OpenGL开发环境的文章博客,但是基本上看到的都是基于Visual Studio的,而笔者习惯了使用Clion+MinGW,再加上配置这些玩意,着实要人头疼得紧,所以打算写一篇博客记录一下。
实际上在另外一台电脑上已经配置过一遍了,但是因为换了台主机,而两台主机整体架构不太一样,所以还需要在这台主机上面再搭一遍
工具:Cmake 3.25.0 +MinGW-w64
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
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
、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
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
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对应的头文件就好了
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进行编译,得到库文件;四、将库文件和头文件,链接和包含进项目。