Как получить библиотеку / заголовки GL? - PullRequest
66 голосов
/ 14 октября 2010
#include <gl\gl.h> 
#include <gl\glu.h> 
#include <gl\glaux.h>

Это пример, но где взять заголовки GL?

Ответы [ 5 ]

77 голосов
/ 15 октября 2010

Windows

В Windows необходимо включить заголовок gl.h для поддержки OpenGL 1.1 и ссылку на OpenGL32.lib.Оба являются частью Windows SDK .Кроме того, вам могут потребоваться следующие заголовки, которые вы можете получить из http://www.opengl.org/registry.

  • <GL/glext.h> - профиль совместимости OpenGL 1.2 и выше и интерфейсы расширений..
  • <GL/glcorearb.h> - Профиль ядра OpenGL и интерфейсы расширений ARB, как описано в приложении G.2 спецификации OpenGL 4.3.Не включает интерфейсы, найденные только в профиле совместимости.
  • <GL/glxext.h> - API-интерфейсы расширения GLX 1.3 и выше и выше.
  • <GL/wglext.h> - Интерфейсы расширения WGL.

Linux

В Linux вам нужно создать ссылку на libGL.so, который обычно является символической ссылкой на libGL.so.1, которая покасимволическая ссылка на фактическую библиотеку / драйвер, который является частью вашего графического драйвера.Например, в моей системе фактическая библиотека драйверов называется libGL.so.256.53, которая является номером версии используемого драйвера nvidia.Вам также необходимо включить заголовок gl.h, который обычно является частью пакета Mesa или Xorg.Опять же, вам может понадобиться glext.h и glxext.h из http://www.opengl.org/registry.glxext.h содержит расширения GLX, эквивалентные wglext.h в Windows.

Если вы хотите использовать функциональность OpenGL 3.x или OpenGL 4.x без функциональности, которая была перемещена в расширение GL_ARB_compatibility,используйте новый заголовок gl3.h с веб-страницы реестра.Он заменяет gl.h, а также glext.h (если вам нужна только базовая функциональность).

Последнее, но не менее важное, glaux.h не является заголовком, связанным с OpenGL.Я предполагаю, что вы прочитали ужасные уроки NEHE и просто согласились с этим.Glaux - ужасно устаревшая библиотека Win32 (1996) для загрузки несжатых растровых изображений.Используйте что-нибудь получше, например libPNG, который также поддерживает альфа-каналы.

34 голосов
/ 14 октября 2010

Linux

sudo apt-get update
OpenGL: sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev

Windows

Найдите папку Visual Studio, в которую она помещает библиотеки, а также файлы заголовков, загрузите и скопируйте файлы lib в папку lib и файлы заголовков в заголовок. Затем скопируйте DLL-файлы в system32. Тогда ваш код будет работать на 100%.

Также Windows : для всех этих включений вам просто нужно загрузить glut32.lib, glut.h, glut32.dll.

8 голосов
/ 14 октября 2010

В Visual Studio:

//OpenGL
#pragma comment(lib, "opengl32")
#pragma comment(lib, "glu32")
#include <gl/gl.h>
#include <gl/glu.h>

Заголовки находятся в SDK: C: \ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ Include \ gl

4 голосов
/ 14 октября 2010

Какая операционная система?

Здесь, на Ubuntu, у меня есть

$ dpkg -S /usr/include/GL/gl.h 
mesa-common-dev: /usr/include/GL/gl.h
$ 

но не разница в а) использовании заглавных букв и б) прямом / обратном слэше. Ваш пример, скорее всего, ошибочен в использовании обратной косой черты.

2 голосов
/ 14 октября 2010

Если вы работаете в Windows, они устанавливаются вместе с платформой SDK (или Visual Studio).Однако заголовочные файлы совместимы только с OpenGL 1.1.Вам нужно создать указатели на функции для новых функций в более поздних версиях.Не могли бы вы уточнить, какую версию OpenGL вы пытаетесь использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...