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

Mandriva / Mageia Discussion :

Problème de lien: ld: cannot find -lgcc_s


Sujet :

Mandriva / Mageia

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Problème de lien: ld: cannot find -lgcc_s
    Sur mandriva 2007
    Voici un exemple simple

    [claude@linuxmsi essai]$ more toto.c
    int toto()
    {
    return 1234;
    }
    [claude@linuxmsi essai]$ gcc -o toto.o toto.c
    [claude@linuxmsi essai]$ ar rv libtoto.a toto.o
    r - toto.o
    [claude@linuxmsi essai]$ gcc -r libtoto.a -o libtoto.o
    /usr/bin/ld: cannot find -lgcc_s
    collect2: ld returned 1 exit status
    [claude@linuxmsi essai]$

    Qui a une idée pour résoudre le problème? J'ai joué avec la variable LD_LIBRARY_PATH sans succès (/lib /usr/lib /usr/local/lib)

  2. #2
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Dans /lib, j'ai :
    -rwxr-xr-x 1 root root 42660 nov 11 03:18 libgcc_s-4.1.2.so.1*
    lrwxrwxrwx 1 root root 19 nov 26 22:26 libgcc_s.so.1 -> libgcc_s-4.1.2.so.1*
    Dans/usr/lib :
    lrwxrwxrwx 1 root root 23 nov 26 22:28 /usr/lib/libgcc_s.so -> ../../lib/libgcc_s.so.1*
    et /usr/local/lib est vide...
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci de votre réponse.
    Avez vous essayé le petit exemple ?
    Retrouvez vous le même défaut ?
    Salutations

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Je ne connais rien du tout à ce que tu as fait !
    Cet après midi, j'ai monté un vieux PC en mdv 2007 et j'ai sauvé avec ce dernier mon DD de musique : http://www.developpez.net/forums/sho...d.php?t=246680
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Je serais interressé de savoir si le problème est reproductible sur une autre machine. Il suffit avec un éditeur comme kwrite de taper le contenu suivant dans un fichier nommé toto.c

    int toto()
    {
    return 1234;
    }


    puis de taper successivement dans une fenêtre terminal les commandes suivantes:

    gcc -o toto.o toto.c

    cette commande rend la main sans message (si le fichier toto.c contient exactement les 3 lignes décrites ci-dessus)
    puis la commande:

    ar rv libtoto.a toto.o

    cette commande doit renvoyer le message r - toto.o

    et enfin la commande:

    gcc -r libtoto.a -o libtoto.o

    ce qui m'interresse c'est le résultat envoyé par cette dernière commande ???

    Merci d'avance pour votre aide !
    Salutations

  6. #6
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [troumad@localhost][~/tmp]$ vi toto.c
    [troumad@localhost][~/tmp]$ gcc -o toto.o toto.c
    /usr/lib/gcc/i586-mandriva-linux-gnu/4.1.2/../../../crt1.o: In function `_start':
    (.text+0x18): undefined reference to `main'
    collect2: ld returned 1 exit status
    [troumad@localhost][~/tmp]$ ll toto*
    -rw-r--r-- 1 troumad troumad 30 déc  7 17:07 toto.c
    Et pas de toto.o
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Dans la précipitation j'ai oublié un -c

    La 1ere commande est

    gcc -o toto.o -c toto.c

    Le reste est bon si ce n'est la faute d'orthographe "intéressé"

    Salutations

  8. #8
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [troumad@portable][~/tmp]$ gcc -r libtoto.a -o libtoto.o
    /usr/bin/ld: ne peut trouver -lgcc_s
    collect2: ld returned 1 exit status
    Et ce sous debian sid (j'ai cassé ma mandriva cooker).
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    C'est très interressant car cela semble être un bug du dernier compilateur gcc. J'ai trouvé le problème en changeant de version de linux. Avec un compilateur plus ancien je n'avais pas de soucis. Cela ne semble pas lié à la distribution car j'avais essayé la SUSE 10.1 et c'était la même chose. De même la DEBIAN présente le défaut.
    J'ai posté un incident au support MANDRIVA mais il n'a pas daigné me répondre.
    Merci de votre aide car cela m'a permis de dédouaner sur 3 exemples un éventuel problème d'installation.
    Salutations

  10. #10
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Vous voulez que je fasse un test sur une Mandriva 2006 ? Je n'ai pas encore migré le PC de ma femme !
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    J'ai peur d'abuser, mais j'ai posté un nouvel incident chez MANDRIVA et effectivement cela pourrait être un élément d'investigation.
    Mais je ne fais pas d'illusion car la dernière version connue de gcc avec laquelle mon programme se compilait était la 2.9.5. Or entre la 2.9.5 et la 4.1.2 il y'a du y avoir un paquet de versions.
    Cordialement.

Discussions similaires

  1. Problème compilation : Cannot find -lglut32.lib
    Par frogway dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 31/01/2009, 20h17
  2. Problème : Cannot find bean
    Par Incinerator dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 09/10/2008, 16h36
  3. Réponses: 2
    Dernier message: 30/05/2007, 20h25
  4. [Débutant] Problème de "Cannot find symbol"
    Par Majora dans le forum Interfaces Graphiques en Java
    Réponses: 11
    Dernier message: 14/05/2007, 17h58
  5. Problème de lien ld: cannot find -lgcc_s
    Par the_claude dans le forum Linux
    Réponses: 3
    Dernier message: 12/12/2006, 08h47

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