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 :

/usr/bin/ld: cannot find -lXext


Sujet :

Autres éditeurs

  1. #1
    Membre habitué
    Avatar de yvesall
    Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 208
    Points : 127
    Points
    127
    Par défaut /usr/bin/ld: cannot find -lXext
    Voila mon probleme est dans le titre, lorsque je compil sous linux (Ubuntu 7.10 AMD64)
    j'ai ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    gcc -g -I. -W -Wall   -c -o main.o main.c
    gcc -g -I. -W -Wall   -c -o draw.o draw.c
    gcc -g -I. -W -Wall   -c -o gere.o gere.c
    gcc -g main.o draw.o gere.o -o polar -L. -lmlx_linux_x86_64 -L/usr/X11R6/lib -lXext -lX11 -lm
    /usr/bin/ld: cannot find -lXext
    collect2: ld a retourné 1 code d'état d'exécution
    make: *** [polar] Erreur 1
    mon Makefile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    NAME		=	polar
     
    SRC		=	main.c\
    			draw.c\
    			gere.c
     
    OBJ		=	$(SRC:.c=.o)
     
    CC		=	gcc -g
     
    INCLUDES	=	-I.
     
    CFLAGS		=	$(INCLUDES) -W -Wall
     
    $(NAME)		:	$(OBJ)
    			$(CC) $(OBJ) -o $(NAME) -L. -lmlx_linux_x86_64 -L/usr/X11R6/lib -lXext -lX11 -lm
     
    all		:	$(NAME)
    je ne comprend pas l'erreur, j'ai beau chercher je ne trouve pas
    si je retire -lXext le message d'erreur se reporte sur -lX11
    de plus si je change le dossier des lib par -L/usr/local/lib j'ai la meme erreur
    je n'ai pas de dossier lib64

    je ne sais pas quoi faire
    help :'(

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    En général, lors de l'appel à un programme sous unix, on met en premier les paramètres avec option (-g, -L, ...) et ensuite les paramètres sans option (main.o, draw.o, ...).

    Dans ton cas, cela donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gcc -g -o polar -L. -lmlx_linux_x86_64 -L/usr/X11R6/lib -lXext -lX11 -lm main.o draw.o gere.o
    Cette "règle" est induite par le fonctionnement de la fonction getopt() (pour les programmes qui l'utilisent) qui permet lire les différentes options. Si tu mets des paramètres avec options après des paramètres sans option, les paramètres avec options ne sont pas lus/analysés par la fonction getopt().

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 580
    Points
    41 580
    Par défaut
    Euh...
    À ma connaissance, gcc est l'exception, et les bibliothèques (les -l) doivent obligatoirement être mises après les fichiers objet qui les utilisent...

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    et dans l'ordre de profondeur :

    si tu utilises libxxx, qui utilise libyy, qui utilise la biblotheque de maths standard , il faudra mettre :

    ou avec les chemins absolus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -L...../libxxx.a  -L......./libyy.a -lm

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut yvesall,

    Je te propose de vérifier une chose toute simple, car j'avais ce problème hier et je l'ai résolu.
    Va dans le répertoire /usr/lib/, et tape ll libXext* . Si tu n'as pas de fichier lien s'appellant libXext.so alors tu dois le créer.
    Par exemple, moi j'avais juste :

    libXext.so.6 -> libXext.so.6.4.0
    libXext.so.6.4.0

    J'ai donc créé le lien de cette façon : ln -s libXext.so.6.4.0 libXext.so
    puis répété l'opération pour d'autres libs.
    En esperant que cela puisse t'aider...
    Ciao !

  6. #6
    Membre habitué
    Avatar de yvesall
    Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Novembre 2006
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 208
    Points : 127
    Points
    127
    Par défaut
    merci de tout ces reponse mais j'ai resolut le probleme simplement en reinstallant toute les libs avec apt-get dont j'avais besoin (je m'etait fait une liste de paquet a installer lors d'une recompile il y a quelque temps, il semblerais donc que la lib en question ai ete dans l'un de ces paquet)

    pour vous dire la liste en question est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get install build-essential flex bison libc6-i386 libc6-dev-i386 libasound2-dev libaudiofile-dev libesd0-dev libjack0.100.0-dev libaudio-dev libcapi20-dev liblcms1-dev libcupsys2-dev libsane-dev libfreetype6-dev fontforge freeglut3-dev libexpat1-dev libfontconfig1-dev libgcrypt11-dev libglib1.2-dev libglib2.0-dev libgnutls-dev libgpg-error-dev libice-dev libieee1284-3-dev libjpeg62-dev libldap2-dev libltdl3-dev libmad0-dev libmng-dev libncurses5-dev libogg-dev libopencdk8-dev libpng12-dev libqt3-mt-dev libsm-dev libtasn1-3-dev libusb-dev libvorbis-dev libx11-dev libxcursor-dev libxext-dev libxft-dev libxi-dev libxml2-dev libxmu-dev libxrandr-dev libxrender-dev libxslt1-dev libxt-dev libxv-dev render-dev unixodbc-dev x-dev zlib1g-dev xlibs-dev libxxf86dga-dev libxxf86vm-dev libungif4-dev libssl-dev libgphoto2-dev ia32-libs
    PS : ui ui j'avais besoin de tout ca a l'epoque ^^

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut ln -s libXext.so.6.4.0 libXext.so : true story, thank you dude :!
    Citation Envoyé par atreyu64 Voir le message
    Salut yvesall,

    Je te propose de vérifier une chose toute simple, car j'avais ce problème hier et je l'ai résolu.
    Va dans le répertoire /usr/lib/, et tape ll libXext* . Si tu n'as pas de fichier lien s'appellant libXext.so alors tu dois le créer.
    Par exemple, moi j'avais juste :

    libXext.so.6 -> libXext.so.6.4.0
    libXext.so.6.4.0

    J'ai donc créé le lien de cette façon : ln -s libXext.so.6.4.0 libXext.so
    puis répété l'opération pour d'autres libs.
    En esperant que cela puisse t'aider...
    Ciao !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ubuntu 8.10 : Message /usr/bin/ld:cannot find -IGL
    Par comtois dans le forum Ubuntu
    Réponses: 7
    Dernier message: 11/04/2009, 19h31
  2. Slony et pgbench /usr/bin/ld: cannot find -lpgport
    Par lolotte35 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 06/10/2008, 10h05
  3. /usr/bin/ld: cannot find -lX11
    Par Michaël dans le forum Administration système
    Réponses: 6
    Dernier message: 10/03/2008, 16h13
  4. [Makefile] GCC sous Linux : /usr/bin/ld: cannot find -lsocket
    Par erroneus dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 25/05/2007, 16h26
  5. /usr/bin/ld: cannot find -lGLU
    Par Instant dans le forum Linux
    Réponses: 1
    Dernier message: 30/04/2006, 16h14

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