本身编译OpenGL项目踩过的坑

  做为一个有理想的编程者,你确定不想被Visual Studio这种给咱们铺好路的IDE束缚,你总有一天要彻底从头开始编程的。踩坑之路就在你的前面了,做为一个makefile新手,我但愿把这些踩过的坑记录下来,以便为之后的新手指导如何从坑里爬出来。html

  一开始咱们必须先学会Visual Studio的方式写Opengl程序,这里我不但愿再赘述,你能够参考learnopengl-cn,或者B站傅老师的视频教程ios

  若是你学会了Visual Studio式OpenGL编程,咱们能够进行下一步。这是个人代码:git

 1 #include <iostream>
 2 #include <GLFW/glfw3.h>
 3 
 4 int main(void)  5 {  6     GLFWwindow* window;  7     if (!glfwInit())  8         return -1;  9     window = glfwCreateWindow(1000, 1000, "Hello World", NULL, NULL); 10     if (!window) 11  { 12  glfwTerminate(); 13         return -1; 14  } 15  glfwMakeContextCurrent(window); 16     while (!glfwWindowShouldClose(window)) 17  { 18  glfwSwapBuffers(window); 19  glfwPollEvents(); 20  } 21  glfwTerminate(); 22     return 0; 23 }

若是你成功了,你会获得一个黑色窗体,标题是hello world ,咱们把代码复制到一个新的目录下github

 下面你就能够开始编译了编程

这里我使用的是msys2 - 32bit,关于如何配置msys2,这里我就不赘述了,资料不少ide

 

 我假设你已经安装好了gcc make 等开发工具函数

这时候你cd到咱们的文件目录下,咱们输入g++ OpenGL.cpp工具

 

固然是不行的学习

这是由于咱们没有定义相关函数,没有头文件,没有连接库文件开发工具

头文件负责声明函数,而连接库文件则是函数被定义的地方,关于函数的声明和函数的定义你能够参考这篇文章

所以咱们须要提供这两个东西,一个头文件,一个库文件

刚好你在下载glfw的时候就包含了这两个文件(glfw要下载32位的)

解压后你会获得这一堆东西

 

 我们把include下的GLFW文件夹复制到跟咱们的CPP文件同级

而后把lib-mingw文件夹复制到CPP同级

这样咱们大概能够获得这个结果

 

 这里咱们须要改变如下咱们的g++语句了,在之前的基础上改为

g++ OpenGL.cpp -L ./lib-mingw -lglfw3dll -lopengl32

若是你作的都对那么应该成功编译没有报错,接着你输入./a.exe就发现打开了一个黑色的窗口,啥都没有

 

 恭喜你,成功了

来解释一下咱们加入了什么,首先是这个-L ./lib-mingw,这个意思就是说个人程序须要到这里面找连接库文件,这一步至关于咱们配置visual studio时增长库目录

 

 而后这个-lglfw3dll则是至关于咱们修改这里

 

 你打开lib-mingw文件,就能够看到这个文件

 

 对应-lglfw3dll是libglfw3dll.a

到这里我想就结束了,其实关于更多这些知识你均可以经过学习makefile文件来知道,做为一个有理想的coder,你必须本身从零开始构建全部的世界,道阻且长。

相关文章
相关标签/搜索