栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

VSCode配置OpenGL环境(GLUT)及常见问题解决

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

VSCode配置OpenGL环境(GLUT)及常见问题解决

一、下载 C/C++ Compiler

下载地址: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 一定要放在 #include 前面。

#ifdef _WIN32
#include 
#endif
#include 
#include 
#include 

(3)无法解析的外部符号 __imp____glutInitWithExit@12 之类的问题:在#include之前(上一行)加上 # define GLUT_DISABLE_ATEXIT_HACK 。

#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博客

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号