2015-12-06 2 views
0

Я использую макинтош, но я не программирование в XCodeне может включать в себя GLEW больше, Mac, не XCode

Несколько месяцев назад я пытался научиться использовать OpenGL в C++, и он сделал работу довольно хорошо. Я использовал библиотеки GLFW, GLEW и GLM, и я смог написать файлы .cpp, которые я мог бы скомпилировать и запустить без проблем, и которые работали точно так, как предполагалось.
я писал свои .cpp файлы в текстовом редакторе, который не является XCode, и я был компиляцией из терминала, используя следующую строку:

g++ input.cpp -o output -lglfw3 -lglew -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo 

Я включил библиотеку GLEW используя следующую строку:

#include <GL/glew.h> 

и она работает отлично

Тогда я провожу несколько месяцев в некоторых других проектах, которые не используют OpenGL, и теперь я планирую сделать что-то, что действительно требует OPENGL, и я до сих пор не используется XCode и я Я все еще собираю usi нг терминала точно таким же образом, но теперь я получаю эту ошибку, при компиляции на терминале с использованием линии я упоминал ранее:

fatal error: 'GL/GLEW.h' file not found 

Это даже случается, когда я пытаюсь compilling старых проектов, которые работали прекрасно, без вызывая ошибку при включении GLEW, месяц назад, хотя я ничего не менял.

Чтобы быть совершенно ясно

#include <GL/glew.h> 

ли да несколько месяцев назад, включает GLEW, не вызывая какие-либо ошибки, но теперь это не работы, а теперь он делает причины этой ошибкой:

fatal error: 'GL/GLEW.h' file not found 

Мой вопрос тогда; Почему я не могу включить GLEW, как я привык, и как я должен теперь включать GLEW? Имеет ли это какое-либо отношение к последним обновлениям системы (el capitan)? Будет ли я использовать библиотеку, которая не является GLEW? Или я смогу использовать openGL в C++, чтобы прекратить использование mac или начать использовать XCode?

примечание: я на 100% уверен: у меня установлен GLEW; что я смог включить GLEW раньше; и что было возможно скомпилировать файлы .cpp на mac с терминала даже, хотя использовался openGL, а файл, где не, написанный на XCode.

+1

Вы установили путь включения туда, где установлен GLEW? Если нет, ваш компилятор не сможет найти заголовки. – Shadowwolf

+0

Вся проблема в том, что компилятор утверждает, что он не может найти заголовок, но я не знаю, что писать вместо GL/glew, так что компилятор может найти заголовок – Nikolaj

+0

Нет GL/glew.h правильно , в командной строке вы можете указать путь включения, используя параметр -I. Это каталог, в котором компилятор будет искать файлы заголовков. Скажем, например, вы сохранили свои файлы заголовков в «/ home/headers», тогда при вызове компилятора вам нужно указать -I/home/headers. – Shadowwolf

ответ

-1

<GL/glew.h> не является стандартным заголовочным файлом в Mac OS. Значит, это не часть системы или установка Xcode. Если вы ранее использовали его в своей системе, это было частью того, что вы установили в дополнение к стандартным средствам разработки.

Скорее всего, любой пакет, который вы ранее установили для получения <GL/glew.h>, не находится в вашей текущей системе. Вам нужно будет установить его явно, и убедитесь, что местоположение, в которое вы его устанавливаете, является частью вашего пути include.

Сказанное, GLEW абсолютно не нужно в Mac OS. Он используется для загрузки расширений в системах, которые не имеют заголовков/библиотек для текущих версий OpenGL (например, Windows и Linux). В Mac OS есть заголовки и библиотеки, которые содержат все точки входа для версии OpenGL, поддерживаемые системой. Серверы загрузчика расширений не имеют никакой полезной цели.

Таким образом, самым простым решением является просто удалить/отключить все зависимости GLEW, когда вы строите на Mac OS.

+0

'Серверы загрузчика расширений не имеют никакой полезной цели. MacOSX имеет множество расширений OpenGL, доступных для него [даже в версии 4.1) (https://developer.apple.com/opengl/capabilities/). NV_texture_barrier и ARB_texture_storage - два очень полезных примера. –

+0

Я использую Glew по нескольким причинам: во-первых, потому что в учебниках о openGL в Интернете говорится, что было бы неплохо использовать, во-вторых, потому что я не смог найти какие-либо учебники для его использования. – Nikolaj

+0

@NicolBolas Of Конечно, есть расширения. Вам по-прежнему не нужен дополнительный загрузчик. Вы просто включаете '' и вызываете функции, определенные там. Больше ничего не нужно. –

0

Я только понял, что проблема не только в GLEW, ни в GLM, ни в glfw3 больше не работает, и это означает, что менеджер пакетов, который я использовал для установки этих библиотек (homebrew), не работает в моей системе (ОС X 10.11. El Capitan), я не уверен, в чем проблема, и я буду безраздельно не разбираться в этом целиком, но мой первоначальный вопрос теперь истребитель.