PS:
在LearnOpenGL中将采用GLFW+CMake+GLAD+VS2022来进行OpenGL的环境搭建。
本人觉得LearnOpenGL在某些步骤还是没有讲清楚,因此做此博客来给大家做个借鉴,避免一些误区。
GLFW环境配置:
GLFW
GLFW是一个专门针对OpenGL的C语言库,它提供了一些渲染物体所需的最低限度的接口。它允许用户创建OpenGL上下文、定义窗口参数以及处理用户输入,对我们来说这就够了。(官方描述)。
步骤:
- Download | GLFW在官网上进行下载源码包(resource packge)这边建议在D盘新建一个(命名为:OpenGL)文件夹,将所需的资源全部解压到该文件中。
解压文件留做待用......
CMake安装
CMake
CMake是一个工程文件生成工具。用户可以使用预定义好的CMake脚本,根据自己的选择(像是Visual Studio, Code::Blocks, Eclipse)生成不同IDE的工程文件。(官方)
步骤
- Download | CMake在官网下载二进制文件(Binary distributions)。ps:这边简单提一嘴。二进制文件(Binary distributions)时编译后的可执行文件。源文件(Source distributions)
- 是源代码文件,需要自己配置环境编译。
- 这里我们选择。
- 这里根据自己需要进行配置(懒人一键next)。
打开CMake。
- 这里将用上上述的GLFW文件(不能有中文路径!!!!!)。build文件(自己在glfw中新建文件夹)
- 点击左下角Configure。
- 然后选择自己需要的编译器点击finish就可以了。
- 最后点击Generate,将在build文件夹里面(你自己在glfw中新建的build文件夹)生成文件。
-
在build文件夹里面找到GLFW.sln文件。用vs2022打开。然后生成解决方案(Build Solution)。
- 然后在build/src/Debug文件夹内就会出现我们编译出的库文件glfw3.lib。留着备用!
接下来我们就要开始创建工程了!
-
新建一个空项目,要选c++的。
-
选成x64的。ps:x64就是六十四位的,x86是三十二位的。
-
右击解决方案选择属性!
- 选择VC++目录,这里将配置两个目录包含目录(include directories)和库目录(liberary directories)。这里先解决包含目录(include directories),点击包含目录(include directories)。
复制这个路径,打开文件夹,进入这个路径。
- 将glfw的include文件夹里面的文件放入上述的路径
新行,将下面的路径输入。
- 然后点击确认。
- 复制该路径进入文件夹。
进入
- 将glfw-build-src-debug中的lib文件复制到上面进入的文件夹中。
并把新建行将下面复制的路径放入。
- 然后确定即可。
- 最后还需要添加依赖。点击链接器(Linker)和输入(Input)将glfw3.lib自己在依赖项后面添加。点击确定即可。
GLAD
GLAD
GLAD是一个开源的库,它能解决我们上面提到的那个繁琐的问题。GLAD的配置与大多数的开源库有些许的不同,GLAD使用了一个在线服务。在这里我们能够告诉GLAD需要定义的OpenGL版本,并且根据这个版本加载所有相关的OpenGL函数。
步骤
- https://github.com/Dav1dde/glad进入GLAD的GitHub页面。
-
进入到一个在线服务的页面。
Language选择C/C++,API gl选择3.3往上(你要是对你的GPU有自信,可以试着版本拉满)
-
进入到一个在线服务的页面。
Language选择C/C++,API gl选择3.3往上(你要是对你的GPU有自信,可以试着版本拉满)
- 页面往下翻,如图勾选,以及Gnerate生成
点击下载!!!!!!。
- 内部结构。
- GLAD现在应该提供给你了一个zip压缩文件,包含两个头文件目录,和一个glad.c文件。将两个头文件目录(glad和KHR)复制到你的Include文件夹中(或者增加一个额外的项目指向这些目录),并添加glad.c文件到你的工程中。
-
到此就配置完成了,接下来要运行一个窗口测试一下!
运行一个窗口
新建一个test.cpp文件。Code Viewer. Source code: src/1.getting_started/1.2.hello_window_clear/hello_window_clear.cpp
把该网站的代码粘贴过来
运行。
大功告成!
总结
本人也是初学,不过一切都是运行成功后才发出来的。不会乱教。其中对编译器的理解也不够深入,因此谢谢大家包含。
如果大家过程有问题,可以评论区留言。本文建议配合LearnOpenGL食用更佳。
大家多多点赞评论转发!谢谢观看!