2014-06-07 7 views
6

ich ein opengl Programm auf qt Schöpfer zu bauen versuchte, installiert auf meinem Mac mit OS X 10.9. Ich habe mehrere Warnungen auf Schwemme Funktionen über seine deprecation in osx10.9, ist ein Beispiel für Fehlermeldung wie:Glut deprecation in Mac OSX 10.9, IDE: QT Creator

'glutInit' veraltet ist: zuerst in OS X 10.9 veraltet [-Wdeprecated-Erklärungen] glutInit (& argc , & argv); ^

Ich frage mich, ob glut.h nicht verwendbar mehr in osx10.9 ist? Laut einigen anderen Beiträgen heißt es, solange wir "OS X Deployment Target" zurück zu OSX 10.8 ändern, funktioniert es. Wie geht das in qtcreator? Vielen Dank!

+1

Wenn Sie suchen eine Schwemme Ersatz (die Sie hoffentlich bald) gibt es GLFW (mein FAV), SDL oder freeglut. – Kos

+0

Danke! Was ist der Hauptunterschied zwischen GLFW und GLUT? –

+1

Auch nur eine offene Frage, hat jemand eine Idee, warum osx10.9 nicht mehr Überangebot unterstützt? Ist es nicht eine gute Bibliothek? –

Antwort

10

Sie können es immer noch in 10.9 verwenden. Sie senden Ihnen ein ziemlich starkes Signal, dass sie wollen, dass Sie aufhören, obwohl ...

Sie können diese Warnungen mit der Compileroption -Wno-deprecated-declarations deaktivieren.

Es gibt auch einige Schwierigkeiten mit den richtigen Header, wenn Sie versuchen, GL3 Funktionen zu verwenden, da Sie gl3.h dafür umfassen müssen, während glut.hgl.h enthalten, die beim Aufbau zusätzliche Beschwerden über mögliche Konflikte verursacht. Die etwas hacky Abhilfe, die ich für diese gefunden ist glut.h zu verhindern, einschließlich gl.h durch die Header-Guard definieren:

#include <OpenGL/gl3.h> 
#define __gl_h_ 
#include <GLUT/glut.h> 

Dann für die Verwendung von GL3 + Level-Funktionen, können Sie das mit einem zusätzlichen Flag glutInitDisplayMode() angeben müssen:

glutInitDisplayMode(... | GLUT_3_2_CORE_PROFILE); 

es sieht aus wie es ist wahrscheinlich Zeit GLFW verwenden zu beginnen. Ich habe GLUT nie für etwas Ernsthaftes benutzt, aber es war immer sehr praktisch für kleine Demos/Tests.

+0

@ AndonM.Coleman: Es ist dort in der Standard GLUT, die mit Xcode ausgeliefert wird. Geh einfach nach, ob du es nicht glaubst. Es befindet sich in Zeile 186 von 'glut.h' sowohl in' MacOSX10.8.sdk' als auch in 'MacOSX10.9.sdk', die mit Xcode 5.1 ausgeliefert werden. –

+0

Ja, du hast recht, Entschuldigung. Ich habe geschaut, aber die OS X-Maschine, die ich vor mir habe, läuft jetzt mit 10,6, also ist es nicht verwunderlich, dass es keine Konstante gibt, wenn ich darüber nachdenke: PI vermischte diese Konstante mit 'glutInitContextVersion (...) '(FreeGLUT-Lösung). –