2013-08-31 5 views
6

Ich versuche, ein C-Programm für meine CS-Klasse zu kompilieren. Ich habe Kommandozeilen-Tools auf meinem Mac installiert, daher habe ich wahrscheinlich OpenGL. Die Programmbeschreibung wurde für Ubuntu gemacht und es sagt, für mich mit kompilieren:Kompilieren eines C-Programms, das OpenGl in Mac OS X verwendet

gcc -Wall -ansi -pedantic -O2 main.o graphic.o imagem.o io.o -o ep2 -lGL -lGLU -lglut 

ich lief und sagte:

ld: library not found for -lGL 

Welche Flaggen soll ich verwenden? Was mache ich?

+0

Brauchen Sie wirklich alle '-lGL -lGLU -lglut'? – Kevin

Antwort

11

In MacOS X verwenden Sie keine Bibliotheken zum Einbinden von APIs auf Systemebene, sondern Frameworks. Die richtige Befehlszeile dieses Programm kompilieren würde

gcc -Wall -ansi -pedantic -O2 \ 
    main.o graphic.o imagem.o io.o \ 
    -o ep2 \ 
    -framework OpenGL -lGLU -lglut 

Hinweis sein, dass GLU und wahrscheinlich Teil des OpenGL-Framework ist. Und es kann erforderlich sein, zuerst GLUT zu installieren.

+0

Was ist mit -lGL? –

+2

@ThiG .: Sie verwenden nicht -lGL auf MacOS X. Sie verwenden das OpenGL-Framework dort. Oh, und im Quellcode müssen Sie wahrscheinlich '#include ' durch '#include ' ersetzen. Apple leidet stark unter dem * nicht erfundenen * Syndrom. – datenwolf

+0

+1 - Ich würde nur hinzufügen, dass es auch ein GLUT-Framework gibt, wenn das OP es unglücklicherweise braucht. Ich weiß nicht, ob es gut mit Core-Profil spielt. –