Différence entre les fichiers OpenGL glew.h et gl.h / glu.h
J'ai un programme opengl avec mon glu et gl fichiers d'en-tête par défaut inclus dans windows 7 professional edition. Maintenant, j'ai acheté un livre qui décrit OpenGL développement d'un jeu. L'auteur de ce livre dit, je dois inclure la glew-tête dans mon projet. D'après ce que j'ai fait j'ai eu quelques erreurs de symbole externe non résolu.
Alors, maintenant, je suis vraiment confus.
J'ai travaillé auparavant avec glBegin et glEnd états dans mon programme. Maintenant, j'ai à travailler avec glBindBuffers et glGenBuffer etc, mais je reçois le symbole externe non résolu les erreurs, comme ça:
1>cWindows.obj : error LNK2001: unresolved external symbol __imp___glewBindBuffer
1>cMdlLoader.obj : error LNK2001: unresolved external symbol __imp___glewBindBuffer
1>cMdlLoader.obj : error LNK2001: unresolved external symbol __imp___glewBufferData
1>cMdlLoader.obj : error LNK2001: unresolved external symbol __imp___glewGenBuffers
Quelqu'un ici qui peut expliquer la différence entre ce fichiers d'en-tête et de ce que j'ai à faire avec elle?
Je goggled beaucoup de temps, mais sur des sites différents, il ya beaucoup plus de confusion des mots comme "glee" ou "glut".
source d'informationauteur SKiD
Vous devez vous connecter pour publier un commentaire.
Vous êtes le mélange jusqu'à 3 choses différentes ici:
GLEW et GLU sont des choses complètement différentes et vous ne pouvez pas remplacer l'une avec l'autre.
GL/gl.h
sont la base d'OpenGL en-têtes, qui vous donnent OpenGL 1.1 fonction et un jeton déclarations, tout peut-être plus. Pour rien, allant au-delà de la version 1.1, vous devez utiliser l'extension OpenGL mécanisme. Puisque c'est un ennuyeux et fastidieux travail, qui a été automatisé par les GLEW projet, qui offrent toutes les détails croustillants emballé dans un facile à utiliser la bibliothèque. Les déclarations de cette bibliothèque sont trouvés dans le fichier d'en-têteGL/glew.h
. Depuis OpenGL extensions ne font pas de sens sans OpenGL de base, la GLEW en-tête inclut implicitement la régulière OpenGL en-tête, afin de notammentGL/glew.h
vous n'avez plus besoin d'inclureGL/gl.h
.Puis il y a la GLU, un ensemble de méthodes pratiques, qui BTW sont sérieusement obsolètes et ne doivent pas être utilisés en toute moderne programme OpenGL. Il n'y a pas moderne GLU, donc, juste l'oublier. De toute façon, c'est les déclarations sont mis à la disposition par la tête
GL/glu.h
(celui que vous posiez des questions sur).Les erreurs que vous obtenez n'ont rien à voir avec inclure des fichiers. Ceux sont des erreurs d'édition de liens. Juste y compris la déclaration est seulement la moitié du travail. L'autre moitié est la liaison entre le réel définitions et ceux qui ne sont pas dans l'en-tête par le fichier de la bibliothèque;
libglew.so
oulibglew.a
sur les systèmes unix,glew.lib
ouglew32.lib
ouglews.lib
ouglew32s.lib
sur Windows. Si vous n'utilisez pas les versions statiques (sans le "s"), vous devez également avoir installé la DLL.Donc à utiliser GLEW vous devez inclure l'en-tête et l'ajouter à la liste des bibliothèques dans les options du linker. Aussi, vous devez appeler
glewInit();
une fois que vous avez obtenu un contexte OpenGL dans votre programme.Je suis très nouveau à OpenGL trucs, donc s'il vous plaît corrigez-moi si je me trompe.