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

Autres éditeurs Discussion :

[gcc/ld] comment "zapper" les objets non référéren


Sujet :

Autres éditeurs

  1. #1
    Membre régulier Avatar de jula
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 81
    Points : 83
    Points
    83
    Par défaut [gcc/ld] comment "zapper" les objets non référéren
    Bonjour à tous,
    j'ai récupéré du code C que je dois compiler sous linux.
    A la compilation, pas de soucis, mais à l'édition de lien, s'affichent des erreurs du genre :
    /chemin/de/la/lib/libA.so : undefined reference to 'fonctionA'
    /chemin/de/la/lib/libB.so : undefined reference to 'fonctionB'
    /chemin/de/la/lib/libC.so : undefined reference to 'fonctionC'
    Ma question est la suivante : est-il possible de passer outre ces problèmes de référencement?
    Sous HP-UX c'était possible (compilateur c89) et je ne sais pas comment ! Mais sous linux (avec gcc) je ne sais pas si c'est faisable...
    Voilà, si quelqu'un a un indice, qu'il n'ésite pas.
    Cordialement,
    Jula.

  2. #2
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    678
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 678
    Points : 638
    Points
    638
    Par défaut
    avec l'option -c, vous pouvez "zapper" la phase "edition de liens" et
    créer un objet au lieu d'un exécutable

    gcc -c -o titi.o titi.c

  3. #3
    Membre régulier Avatar de jula
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 81
    Points : 83
    Points
    83
    Par défaut
    salut HRS,
    mon problème est que je voudrais avoir un exécutable à la fin....
    en fait, le code permet de créer plusieur lib, et ces lib me sont utiles pour créer un exe.
    mais quand je veux créer l'exe j'ai des soucis à l'édition de liens avec les lib crées
    il parait que certains de ces soucis existaient déjà sur l'ancienne plateforme (hp-ux) mais qu'ils arrivaient à passer outre ces erreurs de référencement et à créer quand même l'exécutable?!
    or moi, sous linux, je n'arrive pas à zapper ces erreurs!
    y-a-t-il un outil qui me permettrait de connaître pour une lib.so crée si des symboles ne sont pas résolus?

  4. #4
    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
    A quoi sert-il de faire cela s'il manque des bouts de code à ton programme à la fin ? Il ne pourra pas faire ce qu'il doit faire !

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Si j'ai bien compris, l'option --allow-shlib-undefined de gnu ld fait ce que tu veux. Pour la passer via gcc, -Wl,--allow-shlib-undefined.

    Miles, vu qu'il s'agit de bibliothèques dynamiques, elles peuvent avoir des dépendances qui ne servent que pour des fonctions qui ne sont pas appelées dans ce programme-là. Une édition de liens statique ne chercherait pas à les trouver.

  6. #6
    Membre régulier Avatar de jula
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 81
    Points : 83
    Points
    83
    Par défaut
    Salut,
    merci Jean-Marc.Bourguet, je n'ai pas eu Internet quelques jours au travail d'où le temps de réponse!
    j'ai essayé de lire le man de gcc et de ld, j'avais aussi trouvé cette option mais je n'étais pas bien sûre d'avoir compris l'explication (pas super douée en anglais) mais vu que tu me proposes toi aussi celle-ci je pense qu'il faut que j'essaie.
    enfin, comme il fallait que ça avance, je m'en suis sortie avec des #ifdef, c'est peut-être "moins pire" que le "--allow-shlib-undefined" mais je dois dire que ce code est vraiment affreux affreux affreux...
    bref, merci à tous ceux qui ont participé à ce post, j'essaie l'option sur le prochain exécutable, je vous tiens au courant!
    cordialement,
    jula.
    Ps : au fait, bonne année à tous !

Discussions similaires

  1. [AC-2007] Comment rechercher les objets non utilisés dans une application
    Par Triton972 dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/12/2011, 05h45
  2. Réponses: 1
    Dernier message: 04/11/2009, 00h39

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