web-dev-qa-db-fra.com

Comment obtenir la bibliothèque / en-têtes GL?

#include <gl\gl.h> 
#include <gl\glu.h> 
#include <gl\glaux.h>

Ceci est un exemple, mais où obtenir les en-têtes GL?

66
cdxf

Les fenêtres

Sous Windows, vous devez inclure le gl.h en-tête pour la prise en charge d'OpenGL 1.1 et lien contre OpenGL32.lib. Les deux font partie de Windows SDK . De plus, vous pouvez vouloir les en-têtes suivants que vous pouvez obtenir à partir de http://www.opengl.org/registry .

  • <GL/glext.h> - Profil de compatibilité et interfaces d'extension OpenGL 1.2 et supérieur.
  • <GL/glcorearb.h> - Profil principal OpenGL et interfaces d’extension ARB, tels que décrits dans l’annexe G.2 de la spécification OpenGL 4.3. N'inclut pas les interfaces présentes uniquement dans le profil de compatibilité.
  • <GL/glxext.h> - GLX 1.3 et versions supérieures API et interfaces d'extension GLX.
  • <GL/wglext.h> - Interfaces d'extension WGL.

Linux

Sous Linux, vous devez créer un lien vers libGL.so, qui est généralement un lien symbolique vers libGL.so.1, qui est encore un lien symbolique vers la bibliothèque/le pilote actuel, qui fait partie de votre pilote graphique. Par exemple, sur mon système, la bibliothèque de pilotes actuelle s'appelle libGL.so.256.53, qui correspond au numéro de version du pilote nvidia que j'utilise. Vous devez également inclure le gl.h en-tête, qui fait généralement partie d’un package Mesa ou Xorg. Encore une fois, vous pourriez avoir besoin de glext.h et glxext.h de http://www.opengl.org/registry . glxext.h contient les extensions GLX, l’équivalent de wglext.h sur Windows.

Si vous souhaitez utiliser les fonctionnalités OpenGL 3.x ou OpenGL 4.x sans les fonctionnalités qui ont été déplacées dans le fichier GL_ARB_compatibility extension, utilisez le nouveau gl3.h en-tête de la page Web du registre. Il remplace gl.h et aussi glext.h (tant que vous n'avez besoin que des fonctionnalités de base).

Dernier mais pas des moindres, glaux.h n'est pas un en-tête associé à OpenGL. Je suppose que vous avez lu les terribles tutoriels NEHE et que vous venez de l’accepter. Glaux est une bibliothèque Win32 (1996) extrêmement obsolète pour le chargement de bitmaps non compressés. Utilisez quelque chose de mieux, comme libPNG, qui prend également en charge les canaux alpha.

77
Mads Elvheim

Linux

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

Les fenêtres

Localisez votre dossier Visual Studio pour y placer les bibliothèques et les fichiers d'en-tête, téléchargez et copiez les fichiers lib dans le dossier lib et les fichiers en-tête dans l'en-tête. Ensuite, copiez les fichiers dll sur system32. Ensuite, votre code sera exécuté à 100%.

Aussi Windows: Pour tous ces inclus, il vous suffit de télécharger glut32.lib, glut.h, glut32.dll.

34
Amir Zadeh

Dans Visual Studio:

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

Les en-têtes se trouvent dans le SDK: C:\Program Files\Microsoft SDK\Windows\v7.0A\Include\gl

8
anno

Quel système d'exploitation?

Ici sur Ubuntu, j'ai

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

mais pas la différence dans a) la capitalisation et b) des barres obliques. Votre exemple est probablement erroné dans son utilisation des barres obliques inverses.

4
Dirk Eddelbuettel

Si vous utilisez Windows, ils sont installés avec le SDK de la plate-forme (ou Visual Studio). Cependant, les fichiers d'en-tête ne sont compatibles qu'avec OpenGL 1.1. Vous devez créer des pointeurs de fonction pour les nouvelles fonctionnalités dans les versions ultérieures. Pouvez-vous préciser la version d'OpenGL que vous essayez d'utiliser?.

2
Mark Ingram