摘录自《洛神赋》:
- 翩若惊鸿,宛若游龙。
- 髣髴[fǎng fú]兮若轻云之蔽月,飘飖[piāo yáo]兮若流风之回雪。
目录
一、前言
本人是先在配置C语言环境的时候已经装了mingw,然鹅这个时候找的几乎所有博文都在讲如何重新开始装一个mingw,很显然这会导致版本冲突问题,故投鼠忌器,不敢轻举妄动,在经过一番了解后,费了两节实验课时间才在VSCode上面配置好了OpenGL环境(o((⊙﹏⊙))o.)。起初按照教程,装好后只能在项目根目录下使用命令{make run}运行程序,而不能按F5进行调试。后面又重新装了一下,与原教程有些出入,虽然成功了,但并不明白其中原理,故未准备写博客免得又误人子弟/(ㄒoㄒ)/~~。然鹅在评论区分享了一点点心得,就得到其他博主回应,还说让俺写篇博客,吾却之不恭,遂只好作(shui)此博文,有错误及疏漏之处还望各位指出并斧正。
二、安装思路及过程
参考配置文章及视频:
- VsCode下配置OpenGL开发环境_哔哩哔哩_bilibili(主要看这个视频)
- 文章一:vscode配置OpenGL开发环境【详细】_CodeDog_wang的博客-CSDN博客(主要文章,但是有一些大大小小的问题)
- 文章二:vscode配置opengl时无法使用glad库解决办法_undefined reference to `glad_glcreateshader-CSDN博客(也是参考上篇文章,为我重新安装提供了新思路)
- 文章三:‘make‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件 解决方案_make' 不是内部或外部命令,也不是可运行的程序 或批处理文件。_消灭BUG鸭的博客-CSDN博客(帮助安装了对应的工具)
- yocover/start-learning-opengl: Learn opengl together (github.com)(大佬教程,但有些晦涩难懂)
1、下载对应的工具
1)在mingw/bin目录(就是放mingw那个文件夹下面的bin目录)下打开命令行窗口,执行命令:
mingw-get install mingw32-make #具体需要查看自己这边文件名称,如果是叫mingw32-get.exe,就替换成这个mingw32-get |
使用{mingw32-make -v}查看是否安装成功。安装后需要修改mingw32-make.exe为make.exe,不改也行,就是后面执行make命令的时候需要写mingw32-make,有点长就是了。 |
也可以找到{D:\mingw\bin\mingw-get.exe},打开这个,这样就可以手动去安装了,注意b站视频里有这个,可以参照着来。
2)安装gcc、g++、gdb等包
- 执行{mingw-get install gcc},安装gcc,在{D:\mingw\bin}打开命令窗口,先执行一下{gcc -v}看看有没有回显,再看看确认有没有这个文件gcc.exe,原来文件夹内已经有的话感觉可以不用装,再装可能会出现兼容问题(比如下载了两个不同版本的gcc,这里为省事,本人就不去踩坑了,有遇到的小伙伴欢迎留言交流);
- 执行{mingw-get install g++},安装g++,先执行一下{g++ -v},再看看有没有这个文件g++.exe;
- 执行{mingw-get install gdb},安装gdb,执行一下{gdb -v},再看看有没有这个文件gdb.exe。
3)放文件到项目中
上面都装好了之后,接下来就是放文件到项目里了,就是下载一个glad和一个glew,然后把里面的文件拆开来放在你用插件C/C++ Project Generator创建的C语言项目中。继续照着文章一里面的来,注意几点:
- 添加到makefile文件只有两处,并且不要去写#后面的注释,去掉;
- 原文这里,生成一个glad.o文件,{gcc ./src/glad.c -c -I ./include/},执行{ar -rc libglad.a glad.o},其中libglad.a是自己写的名称,非固定名称。如果照着前面出错,请将这个步骤换成文章二中博主内容试试:
先在{D:\mingw\zipTools(out)\glad}(目录仅供参考)执行命令:g++ ./src/glad.c -c -I ./include/
然后继续执行这句命令:
ar -rc libglad.a glad.o
并且后面步骤换成mingw-64里面的三个文件试试。(原文是采用mingw里面的三个文件)
4)按F5调试
到这里,如果你只能在项目根目录运行{make run},请看下面的按F5报错,思路就是独立打开这个项目,而不是作为一个子项目去打开。
三、拓展点
1、查看编辑器位数,以此来选择glfw位数和glad配置。
要查看在VSCode中使用的MinGW编译器是32位还是64位,可以执行以下步骤:
1)打开VSCode,并在菜单中选择“终端(Terminal)”->“新建终端(New Terminal)”。
在打开的终端中输入命令 gcc -v,然后按回车键。
终端会显示GCC的版本信息,包括位数信息。例如,如果GCC版本为x86_64,则表示是64位;如果GCC版本为i686,则表示是32位。
如果GCC的版本信息没有直接显示位数,可以尝试输入 gcc -m32 -v 或 gcc -m64 -v 来查看支持的架构类型。如果系统支持32位或64位架构,那么GCC就会显示相应的架构信息。【呃,这两句命令都会显示】
另外,也可以通过查看MinGW的安装目录来确定位数。通常,MinGW的安装目录会包含mingw32(32位)或mingw64(64位)文件夹。在VSCode中打开文件资源管理器,找到MinGW的安装目录,并查看包含的文件夹名称即可确定位数。
有点糊涂了,文件夹里显示是mingw32,但是查看版本又有个"--build=x86_64-pc-linux-gnu"
最后经过阅读多篇博客,才敲定是用32位的(可能是看里面有个文件夹mingw32,虽然我电脑是64位的)。开始失败可能也与这个有关。
2、按F5报错
视频这里15分15秒,在导入这两个库后,按F5报错:
fatal error: glad/glad.h: No such file or directory #include<glad/glad.h> compilation terminated. |
当时的解决方案是:不要按F5调试,而是直接在makefile当前目录下执行{make run},就可以成功运行!后面注意要打开的是整个项目,而不是作为一个子项目打开。VSCode似乎只会识别根目录下的.vscode文件夹中的launch.json,我开始还以为是这里的问题,开始显示的是debug,我换成gdb,并修改了一下"${workspaceFolder}/output/main"这里,但是还是出错了,看报错内容,显示的是总项目内的文件路径,意识到它并没有把这些子项目当作模块来运行。
3、在VSCode中配置opengl时的mingw和配置C语言时的不是同一个
openGL需要的是sjlj,但C语言的是seh,里面讲二者差别就是有没有支持Windows下的异常处理。并且我察看的时候,里面少了几个工具,具体请对照b站视频和文章一里出现过的工具,建议都装一遍。
四、结尾语
啥都不说了,最近状态不太好,上课都有点心不在焉的。o(><;)ooΣ。