首先明白OpenGL其实是一个标准,所以各家的实现不同,各个厂商的实现也是不同,它依赖于具体的硬件比如AMD或者Intel,所以需要下载一个库去调用,应该可以这么说.这样不用直接去调用底层的opengl的库
下载地址:🔗GLFW
哪个版本都无所谓,因为这个版本指的是生成应用程序的版本是64位的还是32位的.不是指的操作系统的版本.
由于下载速度慢,所以将具体的库文件放在了QQ群:1140421605
接着进行配置
新建一个空项目,然后切换到文件夹视图,因为使用vs默认的视图,会让项目变得混乱
创建一个文件夹src
,添加一个cpp文件,即将测试程序代码(来自GLFW的网址)复制进去.
#include <GLFW/glfw3.h>
int main(void) {
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window) {
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window)) {
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
接着,右击项目,找到项目路径
回到Solution的文件夹,创建一个文件夹放依赖的库dependences
进入denpendences,创建一个文件夹GLFW
,并将下载的库文件include
和lib-vc2019
放入该文件夹下,表示这个是GLFW的库文件和头文件
回到VS,然后右击项目,选择属性,进行配置
选择,注意第一个Configuration选择所有,然后platform选择你对应的下载的32bit还是64bit,为了省事,我直接选择了all所有,这是为了你build的环境设置.你告诉vs你需要生成哪个平台下的程序.
然后需要告诉vs需要从哪里找到依赖的头文件
添加$(Solution)dependences\include
这里使用了vs的宏Solution
表示解决方案的路径即sln文件所在目录. 这样你给到别人这个项目的时候,不要别人再进行配置.而如果你直接复制自己include的路径,在发给别人之后还需要配置该路径,因为至少计算机名是不一样的,比如我的叫做MartinTai.
这个时候,你发现cpp文件include不报错了 ,即可以进行编译了,编译已经没有问题了.还剩下链接的错误.所以这个时候要需要配置linker的.
同样,你需要添加库文件所在目录.
这时候,你只是告诉vs你外来库的路径,并没有告诉vs需要链接哪个库.所以还需要进入input页签.
添加这两个库,其中glfw3.lib
是GLFW的库,也就是你下载之后lib-vs2019的里面的静态库.还有一个是Opengl32.lib
是因为需要调用的底层的opengl的函数.
最后确定即可.最终执行结果.
插曲:如果你不添加Opengl32.lib
这个不确定你下载的版本是不是也叫这个名,这个不要添加外来的库文件,只需要添加即可,因为这是系统自带的.
这里我没有添加,在执行的时候会报glClear链接错误.
要解决添加什么库的问题:复制函数名 然后用浏览器搜下,可以看到是win32的api
然后点进去,就可以看到所需要的库文件名称.