Journal ld se paye ma tronche !

Posté par  .
Étiquettes : aucune
0
24
jan.
2004
Ca fait le deuxieme journal de suite que je poste suite à un léger souci, mais le manuel qui le fait bien ne dit toujours pas tout. Donc, je souhaite compiler un programme qui nécessite ...
Voici les faits:

make[2]: Entre dans le répertoire `/home/pier/archive_applications/grisbi-0.4.3/src'
gcc -g -O2 -Wall -Wunused -o grisbi accueil.o fenetre_principale.o operations_liste.o banque.o fichier_configuration.o operations_onglet.o barre_outils.o fichiers_gestion.o parametres.o categories_onglet.o fichiers_io.o patienter.o comptes_gestion.o comptes_onglet.o gtk_combofix.o qif.o comptes_traitements.o help.o tiers_onglet.o devises.o main.o traitement_variables.o echeancier_formulaire.o menu.o echeancier_liste.o operations_classement.o equilibrage.o operations_comptes.o ventilation.o erreur.o operations_formulaire.o type_operations.o exercice.o imputation_budgetaire.o affichage.o etat_io.o etats_onglet.o etats_config.o etats_calculs.o etats_support.o etats_gtktable.o affichage_liste.o -rdynamic -L/usr/lib -L/usr/X11R6/lib -rdynamic -lgnomeui -lart_lgpl -lgdk_imlib -lSM -lICE -lgtk -lgdk -lgmodule -ldl -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -L/usr/lib -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -L/usr/lib -lglib -L/usr/lib -lxml -lz -rdynamic -L/usr/lib -L/usr/X11R6/lib -lgdk_pixbuf -lgtk -lgdk -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm
/usr/bin/ld: cannot find -lesd
collect2: ld returned 1 exit status
make[2]: *** [grisbi] Erreur 1
make[2]: Quitte le répertoire `/home/pier/archive_applications/grisbi-0.4.3/src'
make[1]: *** [all-recursive] Erreur 1
make[1]: Quitte le répertoire `/home/pier/archive_applications/grisbi-0.4.3'
make: *** [all-recursive-am] Erreur 2

MAIS

[root@localhost pier]# /sbin/ldconfig -p | grep esd
libesddsp.so.0 (libc6) => /usr/lib/libesddsp.so.0
libesddsp.so (libc6) => /usr/lib/libesddsp.so
libesd.so.0 (libc6) => /usr/lib/libesd.so.0

J'en appelle donc à la divination de certains pour m'expliquer ce phénoméne qui me parit pour le moins étrange.
Merci d'avance
  • # Re: ld se paye ma tronche !

    Posté par  (site web personnel) . Évalué à 1.

    Il te faut libesd.so paquet -dev ou -devel de ta distrib
    • [^] # Re: ld se paye ma tronche !

      Posté par  . Évalué à 0.

      Moi je veux bien, mais ça ne me dit pas vraiment qu'est-ce qui le turlupine.
      Si j'ai bien compris l'option -lesd lui dit de chercher libesd.so et étant donné qu'il sait où il se trouve et qu'il est effectivement présent , je sèche.
      En tout état de cause je vais installer,si je le touve , un paquet de développement pour cette library, mais aurait-il de bonnes raisons de contenir autre chose que des fichiers d'en-tête ?
      • [^] # Re: ld se paye ma tronche !

        Posté par  (site web personnel) . Évalué à 1.

        Non il n'est pas présent, tu as un .so.0 mais pas de .so tout court
        • [^] # Re: ld se paye ma tronche !

          Posté par  . Évalué à 0.

          Si, je l'ai, na.
          [pier@localhost grisbi-0.4.3]$ ll /usr/lib/libesd.so*
          lrwxrwxrwx 1 root root 16 mar 24 2003 /usr/lib/libesd.so.0 -> libesd.so.0.2.24
          -rwxr-xr-x 1 root root 31514 mar 1 2002 /usr/lib/libesd.so.0.2.24
          [pier@localhost grisbi-0.4.3]$ file /usr/lib/libesd.so.0.2.24
          /usr/lib/libesd.so.0.2.24: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), not stripped

          Par contre est-ce possible que ldconfig n'est vu que le lien est pas le .so véritable ?
          De plus, je n'ai pas de paquet de dev sur mes CDs et sur RPMfind je n'ai trouvé que des paquets pour Mandrake Cooker...Je suis un peu embêté.
          • [^] # Re: ld se paye ma tronche !

            Posté par  (site web personnel) . Évalué à 2.

            Si, je l'ai, na.

            Nan tu l'as pas regarde :

            [pier@localhost grisbi-0.4.3]$ ll /usr/lib/libesd.so
            ls: /usr/lib/libesd.so: No such file or directory

            Achete toi des lunettes :)
    • [^] # Re: ld se paye ma tronche !

      Posté par  . Évalué à 1.

      C'est le libesd.a qui est cherché par ld... donc, il faut installer le paquet de dev.
      Donc, 'apt-get install libesd0-dev' si tu es sous Debian.
  • # Re: ld se paye ma tronche !

    Posté par  . Évalué à 1.

    Bon, je me suis démerdé tout seul mais merci quand même de l'attention que vous avez porté au probléme.
    libesd.so fait partie de esound
    esound-devel à rajouté un lien /usr/lib/libesd.so qui est je l'admets trés different de /usr/lib/libesd.so.0 mais qui n'en pointe pas moins sur /usr/lib/libesd.so.0.2.24 qui était déjà présent ?
    avant cela j'avais compilé quand même en appelant gcc en virant -lesd
    je n'ai pas de carte son !

    ps:j'ai vu à cette occasion qu'en virant tous les -lesd de gnomeConf.sh, gnome-config l'indique tout de même.
    • [^] # Re: ld se paye ma tronche !

      Posté par  (site web personnel) . Évalué à 2.

      Eh oui, il y a trois (3) noms pour les libs partagées :

      1° le "vrai" fichier, par ex. /usr/lib/libesd.so.0.2.31

      2° ce fichier contient dans le bazar elf une entrée SONAME : libesd.so.0 c'est ce nom qui est enregistré comme dépendance et qui est cherché par le linker dynamique (et par ldd)

      3° lors de la compilation, quand tu indiques -lesd, il cherche libesd.so

      On pourrait trés bien avoir un fichier libtrululu avec un soname libmachin et qui se linkerait avec -lplop.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.