2014-06-07 2 views
6

Я пытался создать программу opengl для qt-создателя, установленную на моем mac, с osx 10.9. я получил несколько предупреждений о перенасыщении функции о его устаревании в osx10.9, сообщение об ошибке выборки, как:Недостаток глушителя в Mac OSX 10.9, IDE: Создатель QT

«glutInit» осуждается: первым осуждаются в OS X 10.9 [-Wdeprecated-объявление] glutInit (& ARGC , & argv); ^

Интересно, если GLUT.h больше не используется в osx10.9? Согласно некоторым другим сообщениям, говорится, что до тех пор, пока мы изменим «Цель развертывания OS X» на OSX10.8, это сработает. Как это сделать в qtcreator? Спасибо!

+1

Если вы ищете замену перенасыщения (надеюсь, вы скоро это увидите), то есть GLFW (мой fav), SDL или freeglut. – Kos

+0

Спасибо! В чем основное отличие GLFW и GLUT? –

+1

Кроме того, только открытый вопрос, есть ли у кого-нибудь идеи, почему osx10.9 больше не поддерживает перенасыщение? Разве это не хорошая библиотека? –

ответ

10

Вы все еще можете использовать его в 10.9. Они посылают вам довольно сильный сигнал, что они хотят, чтобы вы остановились, хотя ...

Вы можете отключить эти предупреждения с помощью опции компилятора -Wno-deprecated-declarations.

Там также некоторые трудности, в том числе правильных заголовков, если вы пытаетесь использовать GL3 функцию уровня, потому что вам необходимо включить gl3.h для этого, в то время как glut.h включает gl.h, что вызывает дополнительные жалобы о возможных конфликтах при строительстве. Несколько Hacky обходного пути я нашел для этого, чтобы предотвратить glut.h от включения gl.h путем определения охранника заголовка:

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

Тогда для использования функций GL3 + уровня, необходимо указать, что с дополнительным флагом glutInitDisplayMode():

glutInitDisplayMode(... | GLUT_3_2_CORE_PROFILE); 

Похоже, что настало время начать использовать GLFW. Я никогда не использовал GLUT для чего-то серьезного, но это всегда было очень удобно для небольших демонстраций/тестов.

+0

@ AndonM.Coleman: Он есть в стандартном GLUT, который поставляется с Xcode. Просто пойдите, проверьте, не верите ли вы этому. Это строка 186 «glut.h» как в «MacOSX10.8.sdk», так и «MacOSX10.9.sdk», которая поставляется с Xcode 5.1. –

+0

Да, вы правы, извините. Я действительно смотрел, но машина OS X, которую я имею перед собой, теперь работает 10.6, поэтому неудивительно, что константа не существует сейчас, когда я думаю об этом: PI смешивал эту константу с 'glutInitContextVersion (...) '(Решение FreeGLUT). –

Смежные вопросы