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 :

problem de linkage avec un fichier .lib


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut problem de linkage avec un fichier .lib
    bonjour !
    j ai cree un fichier .lib qui utilise des classe gdi+ et opengl avec succé mais quand j ai utiliser ce fichier .lib dans un projet le compilateur me renvoie a la compilaion les erreur suivante :
    undifined reference gdiplus......
    undifined reference gl......
    noter que les fichier libgdiplus.a et libopengl32.a etait inclus dans le projet comme d habitude sans faute .
    pour rectifier ces erreur j ai essayer plusieur methode mais sans succé.
    j ai meme inclus dans les fichier header du projet et dans le fichier header a la creation du fichier .lib les directives suivates sans succé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #ifdef _DEBUG
       #pragma comment( lib, "libopengl32.a" )
       #pragma comment( lib, "libglu32.a" )
       #pragma comment( lib, "libgdiplus.a" )
    #else
       #pragma comment( lib, "libopengl32.a" )
       #pragma comment( lib, "libglu32.a" )
       #pragma comment( lib, "libgdiplus.a" )
    #endif
    SVP y a t il un expert pour aider un debutant a resoudre ce probleme , et merci.

  2. #2
    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 165
    Points
    220 165
    Billets dans le blog
    126
    Par défaut
    Bonjour,

    Je crois qu'il faut que les bibliothèque GDI/OpenGL 32 soient incluent dans le projet avant que votre DLL/.lib ne le soit, sinon, les dépendances ne sont pas trouvées.
    Et puis, je ne ferai pas trop confiance pour les inclusions à l'aide du pragma, mieux vaut passer par les propriétés du projet

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    merci pou la reponse ,le probleme etait du faite que j incluait le fichier .lb de cette maniere comme je faisais d habitude
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -lopengle32
    -lgdiplus
    d habitude ça marchais bien sauf avec ce projet ou j ai rajouter un fichier .lib que moi meme j ai creér alors ça fonctionne pas , mais quand j ai donner le chemin exacte du fichier lib comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    c:/.../..../libopengl32.a
    c:/.../..../libgdiplus.a
    ça a marcher je trouve que c est bizard mais ça marche.
    j aimerai bien savoir svp si vous avez une reponse pourquoi ça n a pas marcher de cette maniere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -lopengle32
    -lgdiplus

  4. #4
    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 165
    Points
    220 165
    Billets dans le blog
    126
    Par défaut
    Il y a une différence entre la bibliothèque statique (.a) et la bibliothèque dynamique (.lib). Maintenant, je ne sais pas trop pourquoi cela marche mieux, juste que grâce à la bibliothèque statique, il va trouver les fonctions directement dans le programme.
    Par contre, j'oserai dire que c'est votre DLL qui devrait être compilée avec les bibliothèques statiques et non le programme finale ... enfin, quoique ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    merci ! j ai recompiler le fichier pour avoir une sortie fichier.a au lieu de fichier.lib mais ça na pas changer grand chose , alors j ai renomer le ficher de sorti en libfichier.a puis j ai recompiler alors ça changer beaucoup de chose et j ai pu inclure les fichier .a directement : -lfichier , -lopengl32 , -lgdiplus
    je pense que le prefix lib joue un grand role.

  6. #6
    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 165
    Points
    220 165
    Billets dans le blog
    126
    Par défaut
    Oui, notamment si vous ne dites jamais quel compilateur vous utilisez. En effet, les .lib ne sont que pour MSVC (le compilateur C de Microsoft).

  7. #7
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 130
    Points : 33 063
    Points
    33 063
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par aliwatte Voir le message
    je pense que le prefix lib joue un grand role.
    Un peu oui, les raccourcis -lXXX vont chercher un fichier libXXX.a dans les LIB_PATH.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2007
    Messages : 106
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Oui, notamment si vous ne dites jamais quel compilateur vous utilisez. En effet, les .lib ne sont que pour MSVC (le compilateur C de Microsoft).
    pardon pour l oublie , j'utilse : CodeBlock et Dev-C++

  9. #9
    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 165
    Points
    220 165
    Billets dans le blog
    126
    Par défaut
    Citation Envoyé par aliwatte Voir le message
    pardon pour l oublie , j'utilse : CodeBlock et Dev-C++
    Donc, je doute que les fichiers .lib soient gérés par les outils que vous utilisez. Cela pourrait expliquer le pourquoi cela ne fonctionnait pas bien.

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

Discussions similaires

  1. Probleme de lien avec un fichier *.dot
    Par bartimeus35 dans le forum Word
    Réponses: 2
    Dernier message: 24/06/2009, 12h45
  2. Génération DLL avec 2 fichiers .lib
    Par JeanPhi dans le forum MFC
    Réponses: 7
    Dernier message: 27/08/2007, 12h02
  3. Probleme de Linkage avec TCppWebBrowser
    Par Flow_75 dans le forum C++Builder
    Réponses: 9
    Dernier message: 28/12/2006, 00h12
  4. Probleme d'instabilite avec les fichiers access
    Par Pepson dans le forum Access
    Réponses: 4
    Dernier message: 30/07/2006, 18h49
  5. Probleme de linkage avec DirectDraw7 sous BC++ 5.02
    Par bobtorn dans le forum DirectX
    Réponses: 3
    Dernier message: 07/10/2003, 20h14

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