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

#include <glgl.h> 
#include <glglu.h> 
#include <glglaux.h>

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

62
demandé sur Daniel Rikowski 2010-10-14 16:24:05

5 réponses

Fenêtres

Sous Windows, vous devez inclure l'en-tête gl.h pour la prise en charge D'OpenGL 1.1 et le lien avec OpenGL32.lib. Les deux font partie du SDK Windows . En outre, vous voudrez peut-être les en-têtes suivants que vous pouvez obtenir à partir de http://www.opengl.org/registry .

  • <GL/glext.h> - OpenGL 1.2 et supérieur profil de compatibilité et interfaces d'extension..
  • <GL/glcorearb.h> - profil de base OpenGL et interfaces d'extension ARB, comme décrit à l'annexe G. 2 de la spécification OpenGL 4.3. N'inclut pas les interfaces trouvées uniquement dans le profil de compatibilité.
  • <GL/glxext.h> - GLX 1.3 et au-dessus API et GLX interfaces d'extension.
  • <GL/wglext.h> - interfaces d'extension WGL.

Linux

Sur Linux, vous devez lier contre libGL.so, qui est généralement un lien symbolique vers libGL. so. 1, qui est encore un lien symbolique vers la bibliothèque/pilote réelle qui fait partie de votre pilote graphique. Pour exemple, sur mon système, la bibliothèque de pilotes réelle s'appelle libGL. so. 256. 53, qui est le numéro de version du pilote nvidia que j'utilise. Vous devez également inclure l'en-tête gl.h, qui fait généralement partie d'un paquet 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 des extensions GLX, l'équivalent de wglext.h sous Windows.

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

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

70
répondu zwcloud 2016-10-14 20:18:36

Linux

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

Fenêtres

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

Aussi Windows: Pour tous ceux inclut vous avez juste besoin de télécharger glut32.lib, glut.h, glut32.dll.

30
répondu Amir Zadeh 2017-01-04 13:56:31

Dans Visual Studio:

//OpenGL
#pragma comment(lib, "opengl32")
#pragma comment(lib, "glu32")
#include <gl/gl.h>
#include <gl/glu.h>
Les en-têtes

Sont dans le SDK : C:\Program fichiers \ Microsoft SDK \ Windows\v7. 0A \ Include\gl

7
répondu anno 2010-10-14 13:25:22

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 entre a) la capitalisation et b) les barres obliques avant / arrière. Votre exemple est susceptible d'être erroné dans son utilisation de barres obliques inverses.

3
répondu Dirk Eddelbuettel 2010-10-14 12:28:38

Si vous êtes sous Windows, ils sont installés avec le SDK platform (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 des versions ultérieures. Pouvez-vous préciser quelle version D'OpenGL vous essayez d'utiliser?

1
répondu Mark Ingram 2010-10-14 15:03:16