2011-10-24 14 views
11

Mac(Lion)でOpenGLのhello worldを作成しようとしています。私はrelated postまたはyoutube tutorialを見つけましたが、そのほとんどはXCodeが必要です。私はXCodeでOKですが、私は、ちょうどhelloの世界を書くためのいくつかのより単純なアプローチが必要であると思っていました。ターミナル下でvimに.cppファイルを書き、コンパイルして実行するのと同様です。 (もちろん、必要に応じてライブラリをインストールしてください)OpenGLのHello WorldをMacでXCodeなし

アイデアや提案はありますか?

答えて

17

OSXを使用している場合は、XCodeを使用してNSOpenGLViewを使用することを強くお勧めします。 This本には、使用できるいくつかのAPIに関する多くの資料があります。 GLUTは間違いなく、グリップに乗ってセットアップするのが最も速いです。トリックを行う必要があります

gcc /System/Library/Frameworks/GLUT.framework/GLUT /System/Library/Frameworks/OpenGL.framework/OpenGL main.c -o myGlutApp 

あなたは、端末にGLUTを使用してコンパイルする場合は、この試みることができる:

#include <GLUT/glut.h> 

void display(void) { 

    //clear white, draw with black 
    glClearColor(255, 255, 255, 0); 
    glColor3d(0, 0, 0); 

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 

    //this draws a square using vertices 
    glBegin(GL_QUADS); 
    glVertex2i(0, 0); 
    glVertex2i(0, 128); 
    glVertex2i(128, 128); 
    glVertex2i(128, 0); 
    glEnd(); 

    //a more useful helper 
    glRecti(200, 200, 250, 250); 

    glutSwapBuffers(); 

} 

void reshape(int width, int height) { 

    glViewport(0, 0, width, height); 
    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 

    //set the coordinate system, with the origin in the top left 
    gluOrtho2D(0, width, height, 0); 
    glMatrixMode(GL_MODELVIEW); 

} 

void idle(void) { 

    glutPostRedisplay(); 
} 

int main(int argc, char *argv) { 

    //a basic set up... 
    glutInit(&argc, &argv); 
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); 
    glutInitWindowSize(640, 480); 

    //create the window, the argument is the title 
    glutCreateWindow("GLUT program"); 

    //pass the callbacks 
    glutDisplayFunc(display); 
    glutReshapeFunc(reshape); 
    glutIdleFunc(idle); 

    glutMainLoop(); 

    //we never get here because glutMainLoop() is an infinite loop 
    return 0; 

} 

をし、その後にコンパイルします。私はそれを使ってXcodeの作業を試したり試したりしないと言いますが、時間と欲求不満を救います。

+0

私はあなたの方法を試してみましたが、get:hello.c:47:21:error:GL/glut.h:そのようなファイルやディレクトリはありません – clwen

+0

hmmm、私は10.6(Snow Leopard)を実行しています。あなたのシステムにGLUTがあることを確認できますか? Xcodeとアップルの開発ツールをインストールしましたか? – whg

+0

インクルードパスを "GL/glut.h"から "GLUT/glut.h"に変更した後で動作します。どうもありがとう! – clwen

0

GLUTを使用して、小さなC++プログラムを作成してみてください。必要なライブラリをインストールするには、macportのようなものを使うことができます。

-1

OpenGLの書籍の例/チュートリアルコードをオンラインでご覧ください。それらはすべてGLUT(別のポスターで言及されている)を必要とする非常に単純なプログラムから始まり、一般的にそれらを構築する方法に関する指示があります。だから、これらの単純なプログラムの一つをダウンロードし、それを稼働させてください。

5

これはちょっと古いですが、私はちょうどそれを行う方法を学んだので、私はそれに答えるでしょう。最初に上記のサンプルコードに2つのエラーがありますが、簡単に修正できます。 clangを使用しているOS X 10.8ではこれが動作します。

clang++ -framework glut -framework opengl hello.cpp 

上記のコードはコンパイルする必要があります。しかし、メイン関数のシグネチャは正しくありません。 glutInitが間違っている可能

<int main(int argc, char *argv) 
>int main(int argc, char **argv) 

<glutInit(&argc, &argv); 
>glutInit(&argc, argv); 

出力は吸うが、それは窓を作り、それが打ち鳴らすとフレームワークを使用する方法を示しています。スターターファイルをありがとう。

+0

Ivanの修正が私のために働いた(OSX Mavericks)。 https://gist.github.com/omenking/35b920a1d2cbf99fc6f2 a.outファイルを実行するには、コマンドラインに/a.outを入力してください。 –