Mac OS X拒绝创建我的OpenGL窗口

Mac OS X refuses to create my OpenGL Window

本文关键字:我的 OpenGL 窗口 创建 拒绝 OS Mac      更新时间:2023-10-16
#include <iostream>
#include <GLUT/GLUT.h>
#include <OpenGL/OpenGL.h>
void GraphiqueAffichage() {
    glClearColor(1.0, 1.0, 0.5, 0.5);
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glFlush();
}
int main(int argc, const char * argv[]) {
    // insert code here...
    glutInitWindowPosition(10, 10);
    glutInitWindowSize(480, 272);
    glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
    glutCreateWindow("Bonjour");
    glutDisplayFunc(GraphiqueAffichage);
    glutMainLoop();
    return 0;
}

你好我在Mac上使用OS X 10.12,用这个代码,没有显示窗口,这是正常的吗?为什么?请帮帮我。编译是正确的,没有错误,构建成功,但没有创建窗口!我试过这个代码与windows工作,但我有一个Mac,它不工作,如何使它工作?

编译正确,无错误,build successful…

但是当你运行程序时你会得到一个错误列表,对吗?"成功编译"并不意味着你的代码是正确的。

查找第一个错误消息,似乎您忘记先调用glutInit:

int main(int argc, char * argv[]) {
    glutInit(&argc, argv);
    glutInitWindowPosition(10, 10);
    ...

(就在你的代码说"插入代码"的地方…)

man glutInit也告诉你它失败的原因:

glutInit将初始化GLUT库并与窗口系统协商会话。

其中"window system"为Mac OS x。

另外,你的main是错误的。argv不是const char *——使用const说明符,编译器会对你大喊大叫。

通过这些更改,我得到了一个漂亮的黄色窗口-你的glClearColor -和自定义标题"Bonjour"。

您需要初始化器过剩

glutInit(和命令行参数个数,argv);

//#include <iostream>
#include <GLUT/GLUT.h>
#include <OpenGL/OpenGL.h>
void GraphiqueAffichage() {
    glClearColor(1.0, 1.0, 0.5, 0.5);
    glClear(GL_COLOR_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glFlush();
}
int main(int argc, const char * argv[]) {
    // insert code here...
    glutInit(&argc, argv);
    glutInitWindowPosition(10, 10);
    glutInitWindowSize(480, 272);
    glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
    glutCreateWindow("Bonjour");
    glutDisplayFunc(GraphiqueAffichage);
    glutMainLoop();
    return 0;
}