0

所以我一直在关注一个教程,当我尝试编译以下代码时:

#include <glut.h>
#include <iostream>

void render(void);
void keyboard(unsigned char c, int x, int y);
void mouse(int button, int state, int x, int y);

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(640, 480);
    glutCreateWindow("Test GLUT App");

    glutDisplayFunc(render); // render
    glutKeyboardFunc(keyboard);
    glutMouseFunc(mouse);

    glutMainLoop(); // initialization finished. start rendering
}

void render(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glBegin(GL_TRIANGLES);
    glColor3f(0.5, 0.2, 0.9);
    glVertex2f(-0.5, -0.5);
    glColor3f(0.1, 0.2, 0.5);
    glVertex2f(0.0, -0.5);
    glColor3f(0.3, 0.9, 0.7);
    glVertex2f(0.0, 0.5);
    glEnd();

    glutSwapBuffers();  
}

void keyboard(unsigned char c, int x, int y)
{
    if(c == 27)
    {
        exit(0);
    }
}

void mouse(int button, int state, int x, int y)
{
    if(button == GLUT_RIGHT_BUTTON)
    {
        exit(0);
    }
}

我突然收到3 个错误

错误 1 ​​错误 C2381: 'exit' : 重新定义;__declspec(noreturn) 不同 c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdlib.h 353

错误 2 错误 C3861: 'exit': identifier not found ....main.cpp 45

错误 3 error C3861: 'exit': identifier not found ....main.cpp 53

有谁知道为什么会出现这个错误?我正在使用 VS2010。

4

4 回答 4

7

你需要#include <cstdlib>

编辑:

您可能正在学习一个为您提供头文件的非常知名的教程。

这将帮助您然后GLUT 退出重新定义错误

于 2012-07-23T06:56:59.957 回答
2

如果您的 Visual Studio 引发构建错误,提示 IntelliSense 未识别“退出”,那么您必须包含process.h

于 2015-12-18T11:14:22.960 回答
0

尝试添加using namespace std到顶部。我不确定这是否会解决它,但我之前有一个类似的错误并且修复了它。祝你好运。

于 2012-07-23T07:00:13.033 回答
0

您需要将标头简单地声明为工作,在我的组合中工作

#include <stdlib.h>
#include <cstdlib>
#include <glut.h>
#include <iostream>
于 2013-11-26T03:33:37.393 回答