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

 C++ Discussion :

Compilation programme OpenGL sous codeblock undefined reference to `glPolygonMode@8'|


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Compilation programme OpenGL sous codeblock undefined reference to `glPolygonMode@8'|
    Bonjour

    Voici le code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                case SDLK_p: /* affichage du carre plein */
                     glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
                      break;
                    case SDLK_f: /* affichage en mode fil de fer */
                      glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
                      break;
                    case SDLK_s : /* Affichage en mode sommets seuls */
                      glPolygonMode(GL_FRONT_AND_BACK,GL_POINT);
                      break;
    Voici les erreur de compilation

    C:/02-c++/01sept-cube9/main.cpp:116: undefined reference to `glBegin@4'
    C:/02-c++/01sept-cube9/main.cpp:119: undefined reference to `glColor3f@12'
    C:/02-c++/01sept-cube9/main.cpp:120: undefined reference to `glVertex3f@12'
    C:/02-c++/01sept-cube9/main.cpp:122: undefined reference to `glEnd@0'
    c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../libmingw32.a(main.o):main.c.text.startup+0xa7): undefined reference to `WinMain@16'
    collect2.exe: error: ld returned 1 exit status
    D'où vient ce souci ?

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Typiquement, lorsque tu obtiens une erreur du genre de undefined reference to XXXX, c'est l'éditeur de liens (comprends : le programme qui va regrouper tous les fichiers objet générés par la compilation pour en faire une application) qui se plaint de ne pas trouver le code binaire correspondant à une fonction qui est sensée exister "quelque part".

    Dans le cas présent, il se plaint de ne pas trouver différentes fonctions qui, au vu des premières lettres, sont des fonctions que l'on devrait retrouver dans la bibliothèque OpenGL.

    Lorsque l'éditeur de liens se plaint de ne pas trouver une fonction issue d'une bibliothèque tierce, comme c'est ton cas pour l'instant, c'est le plus souvent parce que tu as oublié de lui préciser la bibliothèque en question comme "source potentielle des fonctions préexistantes".

    Ici, tu as oublié de préciser à l'éditeur de liens qu'il devait aller voir du coté de la biblitohèque OpenGL. Avec MinGW, la bibliothèque à indiquer est opengl32 et il faut le faire en ligne de commande en ajoutant l'option -lopengl32 (note que la première lettre est un L minuscule )

    sous code::blocks, tu peux rajouter cette bibliothèque dans le menu project->build options ->selectionner l'onglet "Linker Settings", ajouter "opengl32" (sans les guillemets ) dans la liste de gauche (link libraries)

    EDIT : si l'ajout de opengl32 ne suffit pas à résoudre tous les problèmes d'édition de liens, tu peux essayer de rajouter également GLEW32, GLU32 et glut (respecte la casse des noms )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 62
    Points : 38
    Points
    38
    Par défaut j'ai ajouté le opengl32
    comme vous me l'avez dit j'ai ajouté le opengl32
    et j'ai recompiler ce qui me donne cette erreur

    mingw32-g++.exe -o bin\Release\01sept-cube9.exe obj\Release\main.o -s -lopengl32
    c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../libmingw32.a(main.o):main.c.text.startup+0xa7): undefined reference to `WinMain@16'
    avez vous une nouvelle solution

    merci de votre aide

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    je ne parviens pas à compiler mon programme, voilà les erreurs qui arrivent [...] merci de votre aide osef, v'là du code sans contexte et des erreurs quand je click sur le bouton

    WinMain c'est la fonction main qui n'est pas trouvé lors du link
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par emykev22 Voir le message
    comme vous me l'avez dit j'ai ajouté le opengl32
    et j'ai recompiler ce qui me donne cette erreur

    mingw32-g++.exe -o bin\Release\01sept-cube9.exe obj\Release\main.o -s -lopengl32
    c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../libmingw32.a(main.o):main.c.text.startup+0xa7): undefined reference to `WinMain@16'

    avez vous une nouvelle solution

    merci de votre aide
    Oui, ca, c'est un des problème de l'édition de liens avec OpenGL avec MinGW. Il faut également rajouter explictement la liaison de liens avec libmingw. La commande complete doit donc ressembler à
    Pour autant que je sache, il semble que l'option -lmingw32 doive impérativement arriver après les différentes options relatives à l'utilisation de OpenGL, glew et autres glut. Mais il n'est pas impossible du tout que je me trompe sur ce point particulier
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    "WinMain"
    Il me semble que tu compiles un projet défini comme "application graphique windows" il faut que ton projet soit "application console" ou mieux "application openGL"

    Ou alors, mon préféré, un "projet vide" pour tout configurer à la main, ce qui veux dire que tu saura ce qui est configuré.
    Avantage, tu apprendras à configurer un projet.

    C'est l'occasion de comprendre qu'il n'existe pas de notion de projet pour le compilateur, seulement un tas de fichier à compiler ensemble.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Gros merci j'ai reussi a compile dans C::B
    Bonjour...

    Merci de votre aide...

    J'ai reussie a compiler avec C::B en fessant ->new projet -> open gl plutot que¸-> console application
    je ne sais pas si c'est la bonne méthode mais ca compile
    je suis debutante avec tous ces outils...
    ce qui est assez complexe pour la programmation toutes ces lib a configure

    ENCORE UN GROS MERCI POUR VOTRE TEMPS....Une change que vous etes là...pour repondre a nos question...

  8. #8
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Tant mieux!

    Nous sommes heureux de partager, nous avons tous commencé un jour

    Je ne sais plus où, mais nous avons des cours sur le processus de compilation, et d'autres sur la configuration de code::blocks.

    D'ailleurs nous avons une FAQ sur code::blocks.

    Bonne continuation!
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

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

Discussions similaires

  1. [SDL_mixer] Compilation sous windows, undefined reference
    Par sunny62 dans le forum SDL
    Réponses: 10
    Dernier message: 05/02/2015, 14h00
  2. Réponses: 1
    Dernier message: 18/11/2012, 00h47
  3. Réponses: 2
    Dernier message: 02/05/2008, 09h11
  4. Programmation OpenGL sous Dev-C++
    Par Nicolas123 dans le forum OpenGL
    Réponses: 3
    Dernier message: 14/04/2007, 18h08
  5. Réponses: 5
    Dernier message: 21/11/2004, 18h59

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