1. #1
    Membre actif
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2014
    Messages : 171
    Points : 223
    Points
    223

    Par défaut Linkage librairie GLEW sous Code::Blocks

    Bonsoir,

    j'essaye d'installer GLFW et GLEW sous Code::Blocks en utilisant un linkage dynamique de la seconde librairie (GLEW) mais dés que je lance mon programme le compilateur me sort un paquet d'erreurs de références, comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    undefined reference to `_imp__glewExperimental'
    undefined reference to `_imp____glewCreateShader'
    undefined reference to `_imp____glewShaderSource'
    undefined reference to `_imp____glewCompileShader'
    undefined reference to `_imp____glewGetShaderiv'
    undefined reference to `_imp____glewGetShaderInfoLog'
    undefined reference to `_imp____glewCreateShader'
    undefined reference to `_imp____glewShaderSource'
    undefined reference to `_imp____glewCompileShader'
    undefined reference to `_imp____glewGetShaderiv'
    undefined reference to `_imp____glewGetShaderInfoLog'
    undefined reference to `_imp____glewCreateProgram'
    undefined reference to `_imp____glewAttachShader'
    undefined reference to `_imp____glewAttachShader'
    undefined reference to `_imp____glewLinkProgram'
    undefined reference to `_imp____glewGetProgramiv'
    undefined reference to `_imp____glewGetProgramInfoLog'
    undefined reference to `_imp____glewDeleteShader'
    undefined reference to `_imp____glewDeleteShader'
    undefined reference to `_imp____glewGenVertexArrays'
    undefined reference to `_imp____glewGenBuffers'
    undefined reference to `_imp____glewBindVertexArray'
    undefined reference to `_imp____glewBindBuffer'
    undefined reference to `_imp____glewBufferData'
    undefined reference to `_imp____glewVertexAttribPointer'
    undefined reference to `_imp____glewEnableVertexAttribArray'
    undefined reference to `_imp____glewBindBuffer'
    undefined reference to `_imp____glewBindVertexArray'
    undefined reference to `_imp____glewUseProgram'
    undefined reference to `_imp____glewBindVertexArray'
    undefined reference to `_imp____glewBindVertexArray'
    undefined reference to `_imp____glewDeleteVertexArrays'
    undefined reference to `_imp____glewDeleteBuffers'
    Voici l'ordre que j'ai utilisé pour le linker settings :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    glew32
    opengl32
    glfw3
    glu32
    winmm
    gdi32

    En contrepartie si j'utilise un linkage statique la compilation réussie mais affiche ce message d'erreur : "Warning: corrupt .drectve at end of def file" mais ça n'arrête pas le fonctionnement du programme. La différence entre les deux linkages c'est que dans ce dernier (statique), j'ai juste changé (glew32 => glew32s) et ajouté la directive "GLEW_STATIC". Donc la question évidente est, comment pourrais-je résoudre ces problèmes ?

    Voici quelques sujets similaires que j'ai pu trouver mais qui n'ont pas de résolution pour ces problèmes :

    -Problème avec glew et code::blocks

    -Glew Linking Issue

    -Problems when linking with GLEW(MinGW32)

    -Warning: corrupt .drectve at end of def file

    -What does “Warning: corrupt .drectve at end of def file” mean?

    Merci pour votre aide !

  2. #2
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 1 994
    Points : 5 569
    Points
    5 569

    Par défaut

    Parce qu pour GLEW faut le mettre en statics donc :
    Dans Project build option->Linker Settings-> Other linker options : -lglews32
    Dans Project build option->Compiler Settings -> #defines -> GLEW_STATIC

  3. #3
    Membre actif
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2014
    Messages : 171
    Points : 223
    Points
    223

    Par défaut

    Bonjour, d'abord merci pour ta réponse, mais je l'ai déjà mis en static (regarde dans ma question), le problème c'est que ça m'affiche une erreur "Warning: corrupt .drectve at end of def file" mais le programme continue de fonctionner, donc comment résoudre ça ?

  4. #4
    Expert éminent

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 757
    Points : 9 128
    Points
    9 128
    Billets dans le blog
    3

    Par défaut

    Tu n'aurais pas un conflit x86/x64 ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  5. #5
    Membre actif
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2014
    Messages : 171
    Points : 223
    Points
    223

    Par défaut

    Je ne pense pas non, je travaille sous Windows 7 - 32 bits, et pour le choix de la librairie, j'ai pris la version pré-compilée (Windows 32-bit and 64-bit) et pour la configuration dans code::blocks (Linker) j'ai ajouté le chemin vers la lib correctement (lib\Release\Win32) au lieu de (lib\Release\x64).

  6. #6
    Expert éminent

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 757
    Points : 9 128
    Points
    9 128
    Billets dans le blog
    3

    Par défaut

    Sinon, tu as la solution d'inclure GLEW à tes sources, tu n'auras alors plus de soucis ^^'
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  7. #7
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 1 994
    Points : 5 569
    Points
    5 569

    Par défaut

    J'ai essayé de faire un template avec glew tu me dira si cela marche : Template_Freeglut_glew.zip
    On tout cas il marche avec linux et wine (pas testé sur un windows réel ).

  8. #8
    Membre actif
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2014
    Messages : 171
    Points : 223
    Points
    223

    Par défaut

    Bonsoir,

    merci "Kannagi" pour le temps consacré sur le projet, mais malheureusement je travaille avec GLFW pour la gestion des fenêtres et des évènements, donc pas de SDL installée et sinon pour la réponse à ta question je crois que ton projet fonctionne si on lui indique les éléments nécessaires.


    "dragonjoker59", je n'ai pas bien compris, est-ce possible d'inclure "glew.h" ? je veux dire, il n'y aura pas d'éléments requis, comme l'implémentation des des prototypes ?

  9. #9
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 1 994
    Points : 5 569
    Points
    5 569

    Par défaut

    ben tu as testé au moins ?Ce n'est pas la SDL mais freeglut .
    Et normalement tu n'a rien a installer , les lib sont avec le projet.

    Si je te passe ce projet c'est que pour que tu tente te le compiler
    Apres tu rajoute ce que tu veux par dessus mais ton souci de glew sera résolu.
    (et c'est pour voir si le probleme venait que tu as mal configurer ton code block ou que ceci est un probleme avec ton windows ou autre)

    Par contre si y'a un souci a l’exécution c'est que j'ai oublier de mettre le dll. (que tu trouvera dans le dossier bin ici : https://jeux.developpez.com/telechar...ur-Code-Blocks )

  10. #10
    Membre actif
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2014
    Messages : 171
    Points : 223
    Points
    223

    Par défaut

    Oui je t'assure que j'ai testé, mais même en copiant le dll dans le dossier Bin, ça m'indique toujours l'erreur précédente :

    cannot find -lSDL
    cannot find -lSDL_ttf
    cannot find -lSDL_image

    Je suis confus, j'ai vérifié la configuration du projet que tu m'as donné mais je ne trouve pas d'appel pour la SDL, c'est vraiment étrange.

    EDIT:

    Erreur du SDL corrigée en vérifiant minutieusement, j'ai trouvé que tu avais inclus la SDL dans la partie globale de la configuration, et je l'ai effacée, maintenant le programme se lance et fonctionne correctement, mais j'ai toujours l'erreur "Warning: corrupt .drectve at end of def file".

  11. #11
    Expert éminent

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    juin 2005
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2005
    Messages : 1 757
    Points : 9 128
    Points
    9 128
    Billets dans le blog
    3

    Par défaut

    Euh... C'est un warning, pas une erreur... Ton programme s'exécute ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

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


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

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

    Informations forums :
    Inscription : mai 2008
    Messages : 22 251
    Points : 151 707
    Points
    151 707
    Billets dans le blog
    6

    Par défaut

    Avez-vous fait des recherches sur ce warning ?
    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.

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    4 509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 4 509
    Points : 17 986
    Points
    17 986

    Par défaut

    D'après google cette erreur est clairement un mismatch entre la lib x86 et x64. Ou entre les versions de compilo.
    Toutes deux s'appellent glew32, donc revérifie et redownload la lib, ou prend les sources et compile les toi-même.
    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.

  14. #14
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    mai 2010
    Messages
    1 994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : mai 2010
    Messages : 1 994
    Points : 5 569
    Points
    5 569

    Par défaut

    Citation Envoyé par dragonjoker59 Voir le message
    Euh... C'est un warning, pas une erreur... Ton programme s'exécute ?
    Apparemment "maintenant le programme se lance et fonctionne correctement"

    Désolé pour la SDL j'ai du l'oublier de l'enlever (j'ai du m'amuser a faire quelque test x) ):/

    Bon de je que j'ai pu récupérer le probleme vient de MingW (ce qui me semble logique vu que glew compile sans warning chez moi et chez d'autre)
    https://www.gamedev.net/forums/topic...glew-problems/
    https://github.com/aquynh/capstone/issues/335

    Ce qui m'a induit en erreur c'est les exemple donné des topic, la plupart des autres avait un souci pour linker glew , apparemment dans ton cas le probleme venait pas du linkage mais d'autre chose.

  15. #15
    Membre actif
    Avatar de guatto
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2014
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2014
    Messages : 171
    Points : 223
    Points
    223

    Par défaut

    Bonjour,

    en réponse à la question de "dragonjoker59", oui mon programme fonctionne correctement, j'ai juste mélangé entre les deux notions (avertissement/erreur), ce que j'ai c'est un avertissement, et j'en suis arrivé à la même conclusion que "Bousk" et "Kannagi", ce problème est du à la différence entre les versions MinGW, qui a été traité dans ce sujet.

    Pour ce qui est de compiler moi même glew, j'aimerais bien mais c'est au dessus de mes compétences, alors j'ai cherché et trouvé ce lien grâce à lequel j'ai pu compiler facilement une version compatible qui fonctionne sans erreurs ni avertissement, mais les fichiers sont un peu différents de ceux proposés par le site glew, les voici : glew.zip.

    et voici la configuration que j'ai faite pour le Linkage dynamique :

    libglew32
    opengl32
    glfw3
    gdi32

    Pour la statique j'ignore comment faire.

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

Discussions similaires

  1. [Débutant] Compiler glu.h sous Code::Blocks
    Par allanp8 dans le forum OpenGL
    Réponses: 10
    Dernier message: 18/11/2007, 00h56
  2. Réponses: 2
    Dernier message: 23/04/2007, 22h37
  3. enregister un projet sous code Blocks
    Par rimbaut dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 09/04/2006, 21h20

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