下载地址:MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net
选择 x86_64-win32-sjlj 进行安装(.seh是新发明的,64位性能好,但若要运行32位程序配置比较繁琐,.sjlj稳定性好,支持32位),这里下载.sjlj是因为GLUT最后一次更新是在1998年,实在太久远了,当时的文件是以32位的格式存储的,而到今日,如果下载.seh则很容易陷入skipping incompatible 和 cannot find 的陷阱中。
下载完后配置环境变量。
按win+R输入cmd打开命令提示符,然后输入 gcc -v 检查gcc版本。
二、VSCode配置C/C++工作区新建或选取一个文件夹作为工作区文件夹,进行C/C++环境配置,详见参考资料1。
三、下载 GLUT有的可能会有5-6个文件,有的可能只有3个文件,但问题都不大,按照 .dll,.h,.lib 分开存放各自的位置即可。
(1)将 glut.dll / glut32.dll 文件放入 D:mingw64bin 中
(2)将 glut.h 文件放入 D:mingw64x86_64-w64-mingw32includeGL 中
(3)将 glut.lib / glut32.lib 文件放入 D:mingw64x86_64-w64-mingw32lib 中
(具体路径视安装情况而定)
四、完成后回到VSCode修改 .json 文件(详见参考资料1)tasks.json: 在 args[] 里面添加 "-lglut32", "-lglu32", "-lopengl32"。
settings.json: 在 "code-runner.executorMap": {} 中添加上面新增的内容。
五、也许成功,可尝试以下程序#include#include #include // GLUT头文件 // 图形绘制函数 void myDrawing(void) { //清除颜色缓冲区 printf("$n"); glClearColor(0.0, 0.0, 1.0f, 0.0); //设置背景清除蓝色 glClear(GL_COLOR_BUFFER_BIT); //执行清除 //以线框形式绘制一个茶壶 glRotatef(45, 1.0f, 1.0f, 1.0f); //旋转 -- <缩放窗口> glutWireTeapot(0.5f); //壶 //glutWireSphere(0.5f, 24, 24); //线框球面 //glutWireTorus(0.25f, 0.6, 30, 25); //线框球面 glFlush(); //强制绘图 } // 主函数 int main(void) { //对GLUT进行初始化 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //产生一个名为"Hello"的绘制窗口, //使用缺省值 glutCreateWindow("Hello"); //注册绘制函数 glutDisplayFunc(myDrawing); //清除颜色缓冲区 ----- 放在这里不起作用 //glClearColor(0.0, 0.0, 1.0f, 0.0); //设置背景清除蓝色 //glClear(GL_COLOR_BUFFER_BIT); //主消息循环 glutMainLoop(); //进入消息循环 return 0; }
输出应为茶壶:
如果能够成功显示这个茶壶,那么配置完成,很成功。
六、如果失败,可能有以下三种情况(1)incompatible 的问题:检查是否是安装的 .sjlj 编译器,然后修改 settings.json 文件中的"code-runner.executorMap": {} 部分,在gcc和g++之后加上 -m32 保证能读取32位文件。
(2)undefined reference 的问题:先确定 .dll,.h,.lib 等GLUT文件存放位置无误,如果问题依然存在,可以尝试在 .cpp 文件顶部添加以下代码,基本可以解决问题,注意 #include
#ifdef _WIN32 #include#endif #include #include #include
(3)无法解析的外部符号 __imp____glutInitWithExit@12 之类的问题:在#include
#define GLUT_DISABLE_ATEXIT_HACK #include七、结语
最后希望大家都能成功配置好GLUT在VSCode中的使用环境,在新时代体验古早的图形API。
参考资料:
VSCode14.1配置简单OpenGL环境(Win10_64位+mingw64+glut)_月湾湾的博客-CSDN博客_vscode配置opengl环境
MinGW-w64安装教程——著名C/C++编译器GCC的Windows版本 - 知乎
Visual Studio Code 如何编写运行 C、C++ 程序? - 知乎
OpenGL编译错误的解决_Zeecool的博客-CSDN博客



