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': 識別子が見つかりません ....main.cpp 45

エラー 3 エラー C3861: 'exit': 識別子が見つかりません ....main.cpp 53

このエラーが表示される理由は誰にも分かりますか? VS2010を使用しています。

4

4 に答える 4

7

する必要があり#include <cstdlib>ます。

編集:

おそらく、ヘッダー ファイルを提供する非常に有名なチュートリアルに従っているでしょう。

これは、 GLUT が再定義エラーを終了するのに役立ちます

于 2012-07-23T06:56:59.957 に答える
0

あなたは仕事として単純なヘッダーを宣言する必要があり、私のコンプで動作します

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

上に追加using namespace stdしてみてください。これで修正されるかどうかはわかりませんが、以前に同様のエラーが発生し、修正されました。幸運を。

于 2012-07-23T07:00:13.033 に答える