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

Linux Discussion :

Ordre de l'édition des liens avec GCC


Sujet :

Linux

  1. #1
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut Ordre de l'édition des liens avec GCC
    J'ai un petit souci d'édition des liens.
    J'ai un énorme logiciel que je viens d'améliorer un peu avec des autotools pour la compilation. Chaque dossier génère une bibliothèque dynamique, chaque dossier regroupe les bibliothèques des sous-dossiers et à la fin tout est lié dans un exécutable.
    Le problème, c'est que l'édition des liens est bizarre. Par exemple, une des bibliothèques demande, lors de lédition finale, à accéder à des fonctions qui sont dans les dernières bibliothèques liées, et ça plante. J'ai aussi fait le contraire, mettre la bibliothèque demandée en premier, mais ça ne marche pas. La seule solution est de mettre la bibliothèque manquante dans le parent de la bibliothèque qui demande les fonctions, et c'est pas génial, génial...
    Aussi, j'ai une bibliothèque liée à une autre et cette dernière est liée au programme, la première n'est pas vue par le système, sauf si je demande explicitement l'édition des liens avec elle - et j'ai vérifié qu'elle était bien présente dans l'édition intermédiaire !

    Une réponse ? - pour la FAQ un jour ? -

  2. #2
    Membre éprouvé
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Points : 1 118
    Points
    1 118
    Par défaut
    Oufff j'ai pas tout compris mais bon....

    Utilises-tu un makefile avec l'outil make ?

    [edit] = (en meme temps c'est plutôt logique ce que je viens de dire )

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Oui, mais c'est la commande d'édition des liens qui pèche.

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Sans doute un problème d'inclusion/liaison croisée, j'ai déjà eu le problème avec des inclusions croisées mais jamais pendant l'édition des liens. Si c'est ce genre de problème, c'est qu'une lib demande une autre mais que justement celle-ci demande l'autre ... un bins de ce genre quoi ... à voir Enfin c'est une piste.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ce n'est pas ça, par exemple l'une des bibliothèques demandées est la version d'ITK de Zlib, et elle est juste demandée par une bibliothèque utilisant ITK

  6. #6
    Membre éprouvé
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Points : 977
    Points
    977
    Par défaut
    J'ai ptet pas saisi ton problème (il est tard ). Mais s'il s'agit de dépendances entre lib à l'étape de l'édition de liens, il y a un ordre à respecter.
    En effet, si A a besoin de symboles qui sont dans B, qui a besoin de symboles qui sont dans C
    Alors, l'ordre de linkage final doit être A B C.

    En effet, en gros, le linker construit "au fur et a mesure" une liste des symboles manquants, qui sont par la suite assignés selon ce qu'il trouve dans les autres elements à linker. Le truc, c'est que si tu le fais dans le mauvais sens (du genre C B A), il va arriver sur B, voir qu'il manque des tokens, le noter dans un coin, et essayer de voir s'il peut les remplir après (avec A, par exemple). Bien evidemment, il ne trouvera rien et plantera lamentablement : le linker n'a pas " l'intelligence" de garder en mémoire que des symboles manquants peuvent avoir été "vus" avant...

    Voilou

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Marche pas, la bibliothèque itkzlib était après les autres, ça plantait toujours...

Discussions similaires

  1. Problème d'édition des liens avec GCC
    Par uriotcea dans le forum Débuter
    Réponses: 2
    Dernier message: 06/06/2011, 11h17
  2. Réponses: 2
    Dernier message: 01/03/2011, 16h11
  3. Problème à l'édition des liens avec wxPlotCtrl
    Par _MattU_ dans le forum wxWidgets
    Réponses: 2
    Dernier message: 12/03/2009, 08h40
  4. Problème à l'édition des liens avec BCC55 et Xerces
    Par ShootDX dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 30/11/2003, 14h50

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