1. 安装vs2022
https://visualstudio.microsoft.com
只需要选择 Desktop development with C++ 组件,其它组件都不用选。C++组件中要手动勾上C++ Clang tools,其它的保持默认状态即可.
2. 打开vs2022, 创建一个新项目idealand,创建同名的solution文件夹,
在solution文件夹中创建libs文件夹,用于存放第三方库
在solution文件夹中创建projects文件夹,用于存放第三方项目的源代码
3. 下载安装cmake,用于编译源代码
https://cmake.org/download/
https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-windows-x86_64.msi
内网高速下载:
aria2c -o cmake-3.24.2-windows-x86_64.msi -x 3 -s 12 "https://bzc.idealand.xyz:8600/dl/cmake-3.24.2-windows-x86_64.msi/dl" "http://tool.idealand.xyz/cmake-3.24.2-windows-x86_64.msi" "http://108.60.212.227/Files/Software/cmake-3.24.2-windows-x86_64.msi" "https://github.com/Kitware/CMake/releases/download/v3.24.2/cmake-3.24.2-windows-x86_64.msi"
4. 设置glfw库,用于创建窗体
https://www.glfw.org
(1)使用编译好的二进制库:
下载 https://github.com/glfw/glfw/releases/download/3.3.8/glfw-3.3.8.bin.WIN64.zip
解压后放到solution\libs\文件夹里面即可
(2)从源代码编译
下载源代码:https://github.com/glfw/glfw/releases/download/3.3.8/glfw-3.3.8.zip
解压后放到solution\projects\文件夹里面,并在glfw根目录里创建build文件夹用于存放编译好的文件
打开cmake, 输入源文件的路径为solution\projects\glfw\
build的路径为solution\projects\glfw\build\
然后点击configure, 弹出选择框,选择vs 2017 2022, x64,其它默认,然后点击finish
出现一堆红色内容,不要修改它们,再次点击configure保存红色部分的设置,这时底部出现configure done
然后点击generate, 底部出现generate done,这样vs2022的项目文件就生成好了,在build文件夹里面
关闭cmake,接下来用vs2022来编译
双击build/glfw.sln, 用vs2022打开,点击生成解决方案
生成完毕,在build\src\Debug下可以找到 glfw3.lib,将它拷贝到solution\libs\glfw\lib-vc2022 里面
将projects\glfw\include\GLFW里面的文件拷贝到solution\libs\glfw\include\GLFW\里面
项目属性 - C/C++ - additional include path: $(SolutionDir)libs\glfw\include\;
项目属性 - Linker - additional library directories: $(SolutionDir)libs\glfw\lib-vc2022\;
项目属性 - Linker - input - additional dependencies: glfw3.lib
#include <GLFW/glfw3.h>
3. opengl本身是一种api规范,实现它的代码的通常是显卡厂商的驱动程序,因此,显卡驱动程序中本身就包含了opengl的实现代码,这样就会导致每家显卡厂商对opengl的实现有些许差异,而且对opengl的实现代码很可能不是开源的,开源的仅仅是opengl标准本身。opengl的优势是跨平台,因为windows, linux, mac os,ios, android都有对opengl的支持。
(1) windows
the OpenGL library opengl32.lib comes with the Microsoft SDK, which is installed by default when you install Visual Studio.
64bits的opengl库也叫opengl32.lib,这个是比较令人困惑的。
在项目中添加opengl库
项目属性 - Linker - input - additional dependencies: opengl32.lib;
(2) linux
On Linux systems you need to link to the libGL.so library by adding -lGL to your linker settings. If you can't find the library you probably need to install any of the Mesa, NVidia or AMD dev packages.
link command: -lglfw3 -lGL -lX11 -lpthread -lXrandr -lXi -ldl
4. GLAD用于在runtime时找到OS中的opengl functions的指针,从而可以调用这些functions
打开http://glad.dav1d.de/,选择C++, OpenGL, API gl: version 4.6, profile: core, check Generate a loader
click Generate to produce the resulting library files
下载glad.zip文件,解压缩,放到solution\libs\里面
项目属性 - C/C++ - additional include path: $(SolutionDir)libs\glad\include\;
在项目源代码里添加glad\src\glad.c文件
#include <glad/glad.h>
5. 创建窗口
https://www.glfw.org/docs/latest/quick.html
参考资料:
OpenGL的环境搭建(cmake+glfw+glew+vs2017)(2019年)
https://blog.csdn.net/NowSayHelloWorld/article/details/102635236