2016-09-17 11 views
-1
#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; 
} 

こんにちは を作成することを拒否し、ANSこのコードで、何のウィンドウが表示されませんか?どうして ?私を助けてください。 コンパイルは正しく、エラーなし、ビルドは成功しましたが、ウィンドウは作成されませんでした。 Windowsで動作するこのコードを試しましたが、Macがあり動作しません。どのように動作させるのですか?のMac OS Xには、私は、Mac OS X使用して10.12の午前私のOpenGLウィンドウ

答えて

2

コンパイルが、エラーが、成功した構築しない正しいです...

いますが、エラーのリストを取得するときに実行プログラム、右? "成功してコンパイルする"は、あなたのコードが正しいとは限りません。

非常に最初のエラーメッセージを見ると、あなたが最初glutInitに電話をするのを忘れたようだ:

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

(右あなたのコードが言うところ、「ここにコードを挿入」...)

man glutInit伝えますあなたはなぜ失敗したのでしょうか。

glutInitは、GLUTライブラリを初期化し、ウィンドウシステムとのセッションをネゴシエートします。 "ウィンドウシステム" はまた、マックOS Xの

で、あなたのmainが間違っている

argvconst char *ではない - そのconst指定子では、コンパイラはあなたに叫ぶでしょう。

これらの変更で、私は素敵な黄色のウィンドウ(glClearColor)とカスタムタイトル "Bonjour"を得ました。

+0

はい、購入した本には書かれていませんでしたが、それは正常ですか? –

+0

http://linux.die.net/man/3/glutinitの注記はこう書いています。「あなたがWIN32のユーザであっても、本当にこれを常に呼び出すべきです。あなたの本の著者はこれを知らなかったかもしれません。いくつかのツールチェーンは['glutInit'は廃止されました](http://stackoverflow.com/q/24095931/2564301)私は主に使用しているバージョンに依存していると思います。 FWIW:あなたのコードは変更されても、私のシステム(Mac OS X 10.7.5)で 'clang'を使ってその特定の警告を出しません。 – usr2564301

+0

@ johnathanMhehdi:私の質問は、あなたのプログラムはこれで動作するのでしょうか?もしそうでなければ、私はこれをさらに調べなければならないでしょう。あなたのコードがどの本のものかを追加する必要があるかもしれません。 – usr2564301

0

あなたは

glutInit(&のargc、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; 
}