You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

glutCreateWindow调用后无窗口显示,编译运行无报错求助

GLUT程序无窗口弹出问题修复
  • 核心问题:代码缺少glutInitDisplayMode调用,这是GLUT创建窗口上下文的必要步骤,没有它系统无法正确初始化OpenGL渲染环境,导致窗口无法显示。
  • 次要问题:未初始化OpenGL基础状态(如背景色、投影矩阵),且默认点尺寸过小,即使窗口显示也难以看到内容。

修复后的完整代码:

#include <GL/gl.h>
#include <GL/glut.h>

void init() {
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f); // 设置白色背景,凸显黑色点
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(-1.0, 1.0, -1.0, 1.0); // 正交投影匹配窗口坐标范围
    glPointSize(5.0f); // 放大点尺寸,方便观察
}

void redraw(void) {  
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POINTS);
    glColor3f(0.0f, 0.0f, 0.0f); // 设置点为黑色
    glVertex2f(0.0, 0.0);
    glEnd();
    glFlush();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // 必须:初始化显示模式
    glutInitWindowSize(400, 400); // 设定窗口大小
    glutInitWindowPosition(100, 100); // 设定窗口初始位置
    glutCreateWindow("Punto");
    init(); // 调用状态初始化函数
    glutDisplayFunc(redraw);
    glutMainLoop();
    return 0; // 符合C语言main函数返回规范
}

编译命令保持原命令不变:
g++ main.c -o gl -lfreeglut -lopengl32 -lglu32

运行修复后的程序,应该能看到一个400x400的白色窗口,中心有一个黑色的点。

内容的提问来源于stack exchange,提问作者Endriu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:44:57