IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Creator Discussion :

Installer et utiliser GLUT (ou FreeGLUT)


Sujet :

Qt Creator

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut Installer et utiliser GLUT (ou FreeGLUT)
    Bonsoir,

    J'adore QtCreator mais je n'ai jamais utilisé de libraire tierce jusqu'à maintenant.
    J'aimerais bien utiliser glut (ou freeglut qui est maintenu et libre), mais tout ce que j'ai essayé pour tenter de l'installer ne fonctionne pas.

    J'ai notamment tenté de suivre les instructions ce petite article: http://hanyulius.blogspot.com/2010/0...dows-with.html

    Mais j'ai des erreurs du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    undefined reference to 'glClear@4'
    undefined reference to 'glEnd@0'
    etc...
    Pouvez-vous m'expliquer comment je dois m'y prendre ?

    Merci.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    Ce que j'en vois, c'est que OpenGL n'est pas lié.
    Sous Linux, il faut rajouter -lGL dans le makefile, sous Windows, cela s'appelle OpenGL32.lib.
    Si vous utilisez qmake, regardez tout à la fin de cette page.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Non j'utilise la "flèche magique verte"

    Donc si je comprend bien comment tout ça fonctionne normalement en cliquant là dessus il fait son qmake tout seul comme un grand etc.

    Quand je regarde dans l'onglet projet le qmake consiste en un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qmake fichier.pro -r -spec win32-g++ "CONFIG+=declarative_debug"
    J'ai tenté de rajouter "-opengl32" mais là ça fait plus rien du tout pas de compilation, pas d'erreur rien.

    (je précise que j'avais déjà rajouté "QT+=opengl" dans mon .pro mais que je l'enlève ou pas ça change rien.)

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Le "QT+=opengl" fait automatiquement le lien avec les libs nécessaire. Il n'y a donc pas besoin de l'ajouter manuellement (avec -lopengl). Par contre, le problème de vient pas de GLUT mais d'OpenGL.
    Si tu lances un des programmes d'exemple de QtOpenGL, est ce que ça marche ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Ben ça dépend de l'exemple.

    "Grabber exemple" et "Framebuffer Object Exemple" fonctionnent mais pour "Cube openGL E.S 2.0" j'ai deux erreurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    In member function 'void MainWidget::initTextures();'
    'GL_TEXTURE()' was not declared in this scope
    'glActiveTexture' was not declared in this scope
    Et pour l'exemple "Boxes" j'ai une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    In member function 'virtual void QtBox::paint(Qpainter*, const QStyleOptionGraphicsItem*, QWidget*)':
    'gluPerspective' was not declared in this scope
    Exemples mal codés ou ça vient de moi ?

  6. #6
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Ca vient de toi
    Plus sérieusement, si l'un des exemples fonctionne, c'est que OpenGL est installé. Peut être un problème de version (glBegin et glClear sont dépréciés et supprimés d'OpenGL > 3.1). Vérifie ta version avec glGetString(GL_VERSION). Peut être aussi un problème de liens, teste avec Dependency Walker

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    En fait, depuis le début, je me demande pourquoi vous voulez utiliser FreeGLUT au lieu d'utiliser tout ce que donne Qt.
    Si on est dans le deuxième, alors en théorie il suffit de rajouter
    QT+=opengl
    Et pour le premier cas, sans QtOpenGL, alors il faut lier les bibliothèques, à l'aide du .pro.

    Sinon, il faut aussi vérifier la version d'OpenGL que vous utilisez.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    C'est un peu vrai... les seules fonctions qui ne sont pas dans Qt, ce sont les fonctions pour créer certains objets (cube, sphère, teapot... en attendant Qt3d). Pour le reste, il faut mieux utiliser Qt (fenêtre, menu, callback, etc.)
    Donc ajouter une lib juste pour créer quelques objets 3D (qui sont très faciles à créer directement à la main, sauf la teapot), c'est peut être un peu lourd

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    glGetString(GL_VERSION) me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    4.2.11399 Compatibility Profile Context

    Citation Envoyé par LittleWhite Voir le message
    En fait, depuis le début, je me demande pourquoi vous voulez utiliser FreeGLUT au lieu d'utiliser tout ce que donne Qt.
    En fait je cherche à faire un petit programme qui puisse s'exécuter sans librairie tierce sur Windows et GNU/Linux. Et si j'ai bien compris freeglut est exactement ce qu'il me faut puisqu'elle permet de créer un environnement openGL à partir du système de fenêtrage natif de l'OS. (et aussi parce que j'ai un code sous glut que j'aimerais réutiliser, j'y connais rien en openGL)


    Citation Envoyé par LittleWhite Voir le message
    Et pour le premier cas, sans QtOpenGL, alors il faut lier les bibliothèques, à l'aide du .pro.
    C'est pas ce que j'ai fait en faisant
    ?

  10. #10
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Ok, donc si tu veux pas Qt, il faut ajouter dans le .pro
    Du coup, l'option suivante ne doit pas être utilisée
    Pour ajouter une libs dans QtCreator, le plus simple est d'ouvrir le .pro et de cliquer sur le bouton droit, tu auras un menu avec "Ajouter une bibliothèque..."
    Sinon, manuellement, il faut écrire :
    On ne met pas le "lib" du début du nom de fichier et l'on met "-l" (L minuscule) pour indiquer que l'on veut link. Tu peux aussi ajouter "-L" (L majuscule) pour ajouter un répertoire de libs

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    Ok, donc si tu veux pas Qt, il faut ajouter dans le .pro
    Déjà fait (j'ai créer un projet C++ classique)

    Citation Envoyé par gbdivers Voir le message
    Du coup, l'option suivante ne doit pas être utilisée
    ok

    Citation Envoyé par gbdivers Voir le message
    Pour ajouter une libs dans QtCreator, le plus simple est d'ouvrir le .pro et de cliquer sur le bouton droit, tu auras un menu avec "Ajouter une bibliothèque..."
    Oui c'est ce que j'avais fait au début mais le problème est que dans "inclure bibliothèque externe" il demande un fichier .lib. Et freeglut n'en a pas.


    C'est pourquoi j'ai placé les 4 fichiers headers qui se trouvaient dans "freeglut/include/GL" dans le dossier "C/QtSDK/mingw/include/GL" et les deux fichiers .a qui se trouvaient dans "freeglut/lib" dans le dossier "C/QtSDK/mingw/lib".
    Et le fichier freeglut.dll sans mon system32

    puis j'ai tenté diverse écriture:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LIBS += libfreeglut // me fait les erreurs
    LIBS += -lfreeglut //idem
    LIBS += freeglut //freeglut: No such file or directory

  12. #12
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Je n'ai pas été clair. Comme tu n'inclues pas Qt, la commande QT+=opengl ne fonctionne pas (le module QtOpenGL n'est pas inclut dans le projet) et donc Qt ne se charge d'aucune inclusion de lib. Il faut donc le faire manuellement, pour FreeGLUT mais aussi pour OpenGL

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Alors comment je fais pour inclure manuellement openGL ?

  14. #14
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 815
    Points : 218 179
    Points
    218 179
    Billets dans le blog
    117
    Par défaut
    Et puis, si vous n'avez pas le freeglut.lib (car Windows utilise des .lib), il faut le compiler.
    (On peut aussi trouver des bibliothèques pré-compilées)

    Et puis, pour OpenGL, la bibliothèque existe de base. Mais si vous supprimez tout de Qt ? ... Pourquoi ne pas lire ce tutoriel : http://jeux.developpez.com/tutoriels/cours-opengl/
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Et puis, si vous n'avez pas le freeglut.lib (car Windows utilise des .lib), il faut le compiler.
    (On peut aussi trouver des bibliothèques pré-compilées)
    Ben il me semblait justement avoir pris un pré-compilé "freeglut-MinGW-2.6.0-3.mp.zip"
    En totu cas c'est ce qui est dit ici: http://hanyulius.blogspot.com/2010/0...dows-with.html

    Je vais voir si je peux en trouver un autre.
    Edit: non je tombe toujours sur le même qui semble être celui de référence.
    Citation Envoyé par LittleWhite Voir le message
    Et puis, pour OpenGL, la bibliothèque existe de base. Mais si vous supprimez tout de Qt ? ... Pourquoi ne pas lire ce tutoriel : http://jeux.developpez.com/tutoriels/cours-opengl/
    Ouais elle est de base sur pas mal d'ordi c'est pourquoi je compte bien l’utiliser. Mais je n'ai pas besoin de Qt (raisons cité ci-dessus), mais j'aime Qt-creator.

    J'avais regardé le tuto mais il n'explique pas comment faire avec Qt-creator.

  16. #16
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Quand je disais d'inclure OpenGL, il suffit de faire comme pour FreeGlut :
    LIBS += -lopengl32
    Attention, tu as peut être plusieurs libopengl32.dll (par exemple dans ton windows/system et dans ton répertoire d'install de ton driver). Vérifie le chemin et le nom de la lib

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    A priori ça a l'air de fonctionner car je n'ai plus qu'une erreur à la compilation.
    Mais je sais pas si ça vient du code ou pas.
    J'ai utilisé le code exemple de wikipedia:http://fr.wikipedia.org/wiki/OpenGL_utility_toolkit

    Pouvez-vous me donner un code minimal pour être certain que ça fonctionne ?

  18. #18
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Points : 15 620
    Points
    15 620
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <GL/glut.h>
    main (int argc, char *argv[])
    {
      /* initialisation de GLUT */
      glutInit (&argc, argv);
    }
    Si tu appelles la moindre fonction de glut, tu dois obligatoirement avoir linké glut et opengl
    Quand tu dis plus d'erreur, c'est après avoir ajouté -lopengl32 ?

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 77
    Points : 30
    Points
    30
    Par défaut
    Le code compile donc je pense que c'est bon mais bizarre que celui de wikipedia me donne une erreur.

    Citation Envoyé par gbdivers Voir le message
    Si tu appelles la moindre fonction de glut, tu dois obligatoirement avoir linké glut et opengl
    C'est le cas (en fait freeglut mais à ce qu'il parait c'est compatible glut)

    Citation Envoyé par gbdivers Voir le message
    Quand tu dis plus d'erreur, c'est après avoir ajouté -lopengl32 ?
    Oui.


    Edit: en fait je suis pas sur que ça fonctionne car quand je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <GL/glut.h>
    int main (int argc, char *argv[])
    {
        glutInit (&argc, argv);
     
          /* création d'une fenêtre OpenGL RVBA avec en simple mémoire tampon
             avec un tampon de profondeur */
          glutInitDisplayMode (GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH);
          glutInitWindowSize (350, 300);
          glutCreateWindow ("Une fenêtre OpenGL avec GLUT");
     
     
          return 0;
    }
    Il m'ouvre pas de fenêtre, juste une console.

Discussions similaires

  1. [Artichow] Installation et utilisation d'un de leurs exemples
    Par matterazzo dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 27/10/2005, 12h21
  2. besoin dun tutoriel d'instalation et utilisation
    Par Pierrick584 dans le forum MFC
    Réponses: 1
    Dernier message: 26/04/2005, 00h40
  3. Installation du logiciel GLUT
    Par nicolas66 dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 18/11/2004, 17h46
  4. [ADO.NET] Installation appli utilisant base access
    Par Didier69 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 27/09/2004, 12h50
  5. Tore en OpenGL sans utiliser glut
    Par lefort dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 20/11/2002, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo