Pb de liens à la compilation

Résolu
Bonjour,

J'essaie de compiler un programme mais
j'obtiens l'erreur suivante:

/usr/bin/ld: ne peut trouver -lXft

D'aprés ce que j'ai lu ld serait une sorte de linker.
Comment faire pour le configurer ?
Y a t-il des variables d'environnement à définir ?

Merci
Configuration: Linux
Firefox 2.0.0.6

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    essaie ça en root
    ln -s /usr/lib/libXft.so.2.1.2 /usr/lib/libXft.so
    1. Contributeur
      salut,

      je crois qu'il te manque une librairie à savoir Xft, je ne sais pas quelle distribution t'utilise mais pour trouver à quel paquet elle appartien tu fais:

      avec mandriva:

      urpmf Xft


      avec debian:
      apt-get search Xft


      je pense qu'un:

      apt-get install libxft-dev 
      ou
      apt-get install libxft2-devel

      devrais faire l'affaire
      1. Voici ce que donne apt-cache depends libxft-dev

        libxft-dev
        Dépend: libxft2
        |Dépend: libc6-dev
        Dépend: <libc-dev>
        libc6-dev
        Dépend: libfontconfig1-dev
        Dépend: libfreetype6-dev
        Dépend: libx11-dev
        Dépend: libxrender-dev
        |Dépend: zlib1g-dev
        Dépend: <libz-dev>
        zlib1g-dev
        Pré-Dépend: x11-common
        Est en conflit avec: <libxft2-dev>
        Est en conflit avec: <xlibs-dev>

        J'hésite vraiment à l'installer vu les conflits signalés.
        Pourtant le repertoire user/lib/ contient un fichier nommé libXft.so.2.1.2
        La version 2 de libXft j'imagine.

        J'ai donc modifié -lXft en -lXft2 dans mon makefile (pour tester) et là
        j'ai eu le message:

        /usr/bin/ld: ne peut trouver -lXft2

        Je ne sais pas comment faire pour régler ce pb ?
        1. Bonjour,

          Quelques causes qui peuvent conduire à l'erreur "/usr/bin/ld: ne peut trouver -lXft2" :

          1) la librairie n'est pas installée (je n'insiste pas)
          2) elle est mal configurée. ld ne recherche pas des noms à rallonge comme libXft.so.2.1.2, normalement il doit y avoir des liens symboliques de type libXft.so et/ou libXft.so.2 renvoyant vers le fichier effectif.
          3) les arguments de ld n'indiquent pas où se trouve le fichier. Une option -l doit être précédée d'une option -L qui donne le répertoire contenant le fichier (/user/lib n'est pas dans les répertoires par défaut, en tout cas pas chez moi).

          Manu
          1. Merci pour ton aide ;-)
            Avec les liens symbolique ça marche maintenant. Je n'ai plus ces messages d'erreur et mon executable est créé.