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

OpenGL Discussion :

Utilisation de Glut et OpenGL avec DevCpp


Sujet :

OpenGL

  1. #1
    Invité
    Invité(e)
    Par défaut Utilisation de Glut et OpenGL avec DevCpp
    Bonjour

    De nombreux internautes ont des erreurs de linkage lors de la compilation d'exemples de code OpenGL + Glut avec DevCpp.

    Souvent ont trouve le conseil suivant sur internet :

    Citation Envoyé par Internaute
    Projet>options du projet>paramètres>dans la partie editeur de lien>Ajouter fichier
    et tu mets libopengl32.a et glut.a
    Le mieux étant de regarder sur les exemples ce qui est écrit.
    Et malgré ces options je continuais à avoir des erreurs de linkage sur des fonctions comme gluLookAt ou gluOrtho2D.

    Et puis j'ai récupéré le DevPack Glut 3.7.6 ici http://www.nigels.com/glt/devpak/

    Je l'ai installé avec DevCpp (il suffit de cliquer sur le fichier)

    Ensuite dans DevCpp, quand on choisit "Fichier / Nouveau projet", dans l'onglet "Multimedia", on peut choisir "Glut" ou "Open GL" et là, on se rend compte que les options dans "Projet / Options du projet / Paramètres / Editeur de lien" sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32
    ...et non pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:/Dev-Cpp/lib/libopengl32.a
    C:/Dev-Cpp/lib/libglut32.a
    Je n'ai plus aucun problème de compilation depuis que j'ai changé ces options...

    C'est peut-être une info qui mériterait de figurer dans la faq, non ?
    Dernière modification par Invité ; 25/06/2007 à 17h09.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    C'est peut-être une info qui mériterait de figurer dans la faq, non ?
    Ca peut se discuter. C'est plus un problème de connaissance de son EDI et des bibliothèques, qu'un problème d'OpenGL.

    Plusieurs choses :
    - Spécifier le chemin complet du fichier (X:\...\libopengl32.a) ou le raccourci (-lopengl32) est strictement équivalent, les deux font référence au même fichier et fonctionnent très bien
    - Lorsque tu sais un peu quelles bibliothèques tu utilises, tu sais tout de suite avec quoi lier ; en outre si tu ne lies qu'avec OpenGL et GLUT il est normal d'avoir des erreurs de liens manquants sur les fonctions de GLU
    - gdi32 est une bibliothèque Windows contenant les fonctions nécessaires à la création du contexte OpenGL
    - winmm n'est en rien nécessaire au bon fonctionnement d'OpenGL

    Bon, après si tous les débutants butent sur ces questions, effectivement on pourrait penser à ajouter une question dans la FAQ.

  3. #3
    Invité
    Invité(e)
    Par défaut Pas glup
    Citation Envoyé par Laurent Gomila
    - Spécifier le chemin complet du fichier (X:\...\libopengl32.a) ou le raccourci (-lopengl32) est strictement équivalent, les deux font référence au même fichier et fonctionnent très bien
    Si on ne met ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:/Dev-Cpp/lib/libopengl32.a
    C:/Dev-Cpp/lib/libglut32.a
    ... à la place de ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32
    Les exemples de code universitaires Glut + OpenGL ne se compilent pas. Cela provoque des erreurs de linkage sur des fonctions comme gluLookAt ou gluOrtho2D.
    Hem... c'est sans doute qu'il faut ajouter "C:/Dev-Cpp/lib/libglu32.a" !

    Citation Envoyé par Laurent Gomila
    Bon, après si tous les débutants butent sur ces questions, effectivement on pourrait penser à ajouter une question dans la FAQ.
    Dans la faq OpenGl de Developpez.com, il y a une grosse partie "Glut".
    J'ai noté par exemple les rubriques :
    - Où trouver GLUT ?
    - Pourquoi ma fonction GLUT ne fonctionne pas ?
    Mais à aucun moment "Comment l'installer avec DevCpp ou Visual Studio".
    Cherchez ["Comment installer" Glut Devcpp] dans Google et essayez de trouver une réponse pertinente dans la première page... Ce n'est pas si évident... Alors que si on tape ["comment installer" sdl devcpp] dans google, on trouve plein de procédures très bien faites...

    Ca ne fait pas de mal de laisser une petite procédure de quelques lignes pour retrouver comment l'installer...

    Enfin bon...Ca fonctionne chez moi. La prochaine fois, je pense que je retrouverais la procédure...
    Comme dirait l'autre : c'est vous qui voyez...

    Merci en tous cas.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Un grand merci à Kaji
    Un grand merci à Kaji grâce à qui je peux enfin mettre un terme à des heures de recherches laborieuses
    sur le net et enfin compiler des programmes d'exemples utilisant OpenGL avec Glut !

    sans -lglut32 j'obtiens des erreurs de linkage du type :
    [Linker error] undefined reference to `glutWireCube'
    [Linker error] undefined reference to `glutSwapBuffers'
    [Linker error] undefined reference to `glutPostRedisplay'
    ...

    sans -lglu32 j'obtiens des erreurs de linkage du type :
    [Linker error] undefined reference to `gluQuadricDrawStyle@8'
    [Linker error] undefined reference to `gluQuadricNormals@8'
    [Linker error] undefined reference to `gluSphere@20'
    [Linker error] undefined reference to `wglSwapBuffers@4'
    ...

    sans -lopengl32 où si il est avant -glu* j'obtiens des erreurs de linkage du type :
    [Linker error] undefined reference to `glFinish@0'
    [Linker error] undefined reference to `wglSwapBuffers@4'
    [Linker error] undefined reference to `wglSwapBuffers@4'
    ...


    sans -lwinmm j'obtiens des erreurs de linkage du type :
    [Linker error] undefined reference to `joyReleaseCapture@4'
    [Linker error] undefined reference to `joySetCapture@16'
    [Linker error] undefined reference to `joyGetPosEx@8'
    ...


    sans -lgdi32 j'obtiens des erreurs de linkage du type :
    [Linker error] undefined reference to `ChoosePixelFormat@8'
    [Linker error] undefined reference to `SetPixelFormat@12'
    [Linker error] undefined reference to `GetPixelFormat@4'
    ...

    J'avais effectivement essayé avec -lglut32 et -lopengl32, mais il en manquait la moitié pour que ça marche !
    En plus l'ordre est important ! Quand je vois comme j'ai galéré alors que j'ai quand même l'habitude des problèmes de linkage,
    j'imagine que le néophite doit avoir des envie de suicide à s'échiner sur le problème sans succès et sans trouver nul part
    une aide potable ! Donc je crois qu'il est effectivement indipensable de parler du linkage dans la FAQ, aussi bien avec Visual Studio
    qu'avec DevCPP, et expliquer le rôle de chacune des librairie et l'ordre dans lequel elles doivent être linkées !!

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Je suis d'accord pour mettre un petit quelquechose sur la faq car personnellement je sais link les librairies dont j'ai besoin mais pour l'ordre a respecter je ne savais pas et d'ailleurs je ne comprend tjs pas pourquoi il faut respecter absolument cet ordre.

    merci pour ce post en tout cas qui m'a bcp aidé.

  6. #6
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 536
    Points : 5 219
    Points
    5 219
    Par défaut
    Citation Envoyé par Kaji Voir le message
    Bonjour

    De nombreux internautes ont des erreurs de linkage lors de la compilation d'exemples de code OpenGL + Glut avec DevCpp.

    Souvent ont trouve le conseil suivant sur internet :
    Citation Envoyé par Internaute
    Projet>options du projet>paramètres>dans la partie editeur de lien>Ajouter fichier
    et tu mets libopengl32.a et glut.a
    Le mieux étant de regarder sur les exemples ce qui est écrit.
    Et malgré ces options je continuais à avoir des erreurs de linkage sur des fonctions comme gluLookAt ou gluOrtho2D.
    bon alors tu as des erreurs de linkage sur des fonctions telles que gluLookAt ou gluOrtho2D
    si tu ne lie QUE glut32 et pas glu32, forcément ça ne peux pas marcher

    je suis d'accord avec Laurent, c'est une information liée à votre connaissance de votre compilateur / linkeur

    si vous voulez utiliser des fonctions opengl, il faut forcément linker la bibliothèque opengl32

    le problème que je rencontre souvent est que les gens ne savent pas lire
    gluOrtho -> GLU
    glutMainLoop -> GLUT

    on devrait peut-etre rajouter dans la faq
    merci de lire les messages d'erreur en ENTIER et sans oublier de lettres dans les mots

    s'il y a une erreur de link c'est que la bibliothèque ou le code source contenant le code de la fonction n'est pas présent dans le projet
    c'est pourtant pas compliqué

    moralité, avant d'apprendre à programmer, il faut apprendre à lire

    quand à l'ordre, c'est aussi un "problème" de linkeur
    à ma connaissance, ce problème ne se pose pas avec visual
    et l'ordre est simplement logique, ajoutez les bibliothèques dans l'ordre dans lequel elle sont sensées être utilisées séquentiellement dans votre programme

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 906
    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 906
    Points : 220 164
    Points
    220 164
    Billets dans le blog
    126
    Par défaut
    Perso, moi aussi j'avais galéré ... enfin peut être car j'ai plus l'habitude de Linux , et que je ne savais pas quoi linker pour les erreurs du genre :
    SetPixelFormat@12

    Des fois on peut aussi avoir des problèmes de main ... mais bon , je ne sais pas si pour autant on doit rajouter cela dans la FAQ

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 249
    Points : 349
    Points
    349
    Par défaut
    J'ai jamais eu ce problème vu que j'utilise VS, mais tout de même si ça pose problème à tant de monde, ça ne coûte pas grand chose d'en parler dans la faq, si?

  9. #9
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 536
    Points : 5 219
    Points
    5 219
    Par défaut
    Citation Envoyé par kremvax Voir le message
    ça ne coûte pas grand chose d'en parler dans la faq, si?
    ce n'est pas un problème opengl, sa place n'est donc pas dans la faq opengl
    et s'il faut rajouter dans toutes les faq les problèmes de linkage, on n'a pas fini

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gros pb de débutant sous opengl avec glut
    Par mozillo3625 dans le forum Dev-C++
    Réponses: 2
    Dernier message: 06/12/2007, 14h21
  2. [WD10] Utiliser une fonction OpenGL avec pointeur (int)
    Par Zoons dans le forum WinDev
    Réponses: 3
    Dernier message: 06/07/2006, 16h38
  3. erreurs opengl avec devcpp
    Par Vermin dans le forum OpenGL
    Réponses: 2
    Dernier message: 13/04/2004, 14h50
  4. comment utiliser de l'OpenGL avec du Java ?
    Par DjiZ dans le forum OpenGL
    Réponses: 3
    Dernier message: 14/01/2004, 15h21

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