Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [RÉSOLU]Lier avec GLEW  (Lu 4049 fois)

0 Membres et 1 Invité sur ce sujet

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
[RÉSOLU]Lier avec GLEW
« le: Février 07, 2013, 02:13:19 am »
Bonjour,

             Ayant besoin de la VBO de Opengl, je dois me lier à glew,qui est (si j'ai bien compris) pas fournie avec SFML.  J'ai téléchargé le binary release et j'ai tout installé.  J'ai tenté de compilé et j'ai une ligne du h de glew qui me fait faire un erreur:

error: #error gl.h included before glew.h

Donc si je comprends bien, je dois inclure glew avant gl.h?....c'est un peu chaud à gérer je trouve.  Malgré sa, j'ai encore cette erreur.  Y'a un truc ou deux trucs que je dois pas comprendre....J'ai pourtant retiré partout le #include <SFML/Opengl> et opté pour #include <GL/glu.h> pour s'assurer que tout fonctionne...mais bon, j'ai pas obtenu le résultat voulu.

Alors bon, si vous avez des solutions je serais preneur.  Est-ce que certains headers de la SFML incluent gl.h ?



EDIT:  Je viens de voir que SFML/Window.hpp  inclue des en-têtes de Opengl, sauf que....j'en ai besoin pour créer ma fenêtre de base dans mon main, comment suis-je sensé l'inclure après mes objets qui se servent de glew?

Merci ! :)
« Modifié: Février 08, 2013, 02:11:47 pm par Chaore »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Lier avec GLEW
« Réponse #1 le: Février 07, 2013, 08:18:55 am »
Quelle version de SFML ? Normalement SFML n'inclue pas OpenGL, excepté dans OpenGL.hpp. Dans 1.6 je ne suis plus sûr, il faudrait que je vérifie.

Mais sinon, au pire quel est le problème ? C'est pas bien sorcier de réarranger l'ordre de ses en-têtes, je ne vois pas ce qui peut poser problème.
Laurent Gomila - SFML developer

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : Lier avec GLEW
« Réponse #2 le: Février 07, 2013, 01:48:27 pm »
Sa tombe bien, je suis sur 2.0, ce qui veut dire que j'ai pas de problème de ce côté là.  Ce qui est étrange, c'est que je n'inclue aucunement sfml/Opengl et encore moins GL/gl.h . 

Bon, je viens de voir que glu.h inclue gl.h.  Sauf que, dans ma compilation, mon objet qui inclue glew est compilé après ceux qui incluent opengl, et personnellement, je trouve  sa chaud à gérer.  Je veux dire, avant je mettais des include seulement aux classes qui avaient besoin d'une déclaration de l'autre, sa regarder l'ordre, mais là va falloir que je change sa.

J'ai vraiment de la difficulté à faire fonctionner ceci.  Le pire, c'est que j'ai seulement une classe qui inclue ma classe qui a besoin de glew et deux qui incluent Opengl.

Merci !

EDIT:  C'est bon j'ai réussi, sauf que là, j'ai une erreur de undefined reference to `_imp____glewBufferData , et pourtant j'ai belle et bien les .lib du binary release.  Je crois que je vais devoir compiler les sources.
« Modifié: Février 07, 2013, 01:55:21 pm par Chaore »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Lier avec GLEW
« Réponse #3 le: Février 07, 2013, 01:54:52 pm »
Au pire fais-toi un en-tête opengl.hpp qui regroupe tout

#include <glew.h>
#include <gl.h>
#include <glu.h>

Et sers t'en partout où tu as besoin de l'un des trois. Petit inconvénient, ça te fera par exemple inclure GLU où tu n'en as pas forcément besoin, mais franchement c'est pas très grave. Et généralement les 3 vont ensemble de toute façon.

Comme ça tu n'as que de cet en-tête à te préoccuper concernant l'ordre.

Citer
undefined reference to `_imp____glewBufferData
Assure-toi que tu n'as pas téléchargé la version statique de GLEW.
« Modifié: Février 07, 2013, 01:56:34 pm par Laurent »
Laurent Gomila - SFML developer

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : Lier avec GLEW
« Réponse #4 le: Février 07, 2013, 01:58:57 pm »
Oui, c'est à peu près ce que j'ai fait.

Merci !!

Je mets pas en résolu encore, car j'ai encore des problèmes de compilation.  Je re-post si jamais sa persiste.

EDIT:D'accord, je vais essayer. 

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : Re : Lier avec GLEW
« Réponse #5 le: Février 08, 2013, 03:08:55 am »
Assure-toi que tu n'as pas téléchargé la version statique de GLEW.

http://glew.sourceforge.net/

Bien que se soit très possiblement le problème, je ne vois que cette version de disponible dans les binary release.


Edit:  Bon, tout fonctionne, voilà, merci Laurent tu m'as guidé exactement vers le problème !!!  C'est le temps des explications cheloux;  Premièrement, j'ai lier glew32s au lieu de glew32.  Deuxièment, à chaque fois que j'inclue glew.h, je dois define GLEW_STATIC.  Je suis pas un pro, mais si j'ai bien compris, la seul façon de le faire fonctionner de ma façon était de l'utiliser en static...je crois.....MERCI !!!
« Modifié: Février 08, 2013, 04:09:46 am par Chaore »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Lier avec GLEW
« Réponse #6 le: Février 08, 2013, 08:17:10 am »
Ben... non, la version dynamique devrait fonctionner tout aussi bien :-\
Laurent Gomila - SFML developer

Chaore

  • Newbie
  • *
  • Messages: 41
    • Voir le profil
    • E-mail
Re : Lier avec GLEW
« Réponse #7 le: Février 08, 2013, 02:11:35 pm »
Bon, peut-importe, je passe en résolu.

Merci !