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

C Discussion :

Problème edition de lien


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Problème edition de lien
    J'ai un problème d'édition de lien avec gcc 4.3.2 sous linux Mandriva 2009.

    Je compile en 32 bits sur une machine 64

    Lors de l'édition de lien je lui mets dans les bibliothèques le chemin -L/usr/lib. Cependant il me met un message d'erreur disant ne pas trouver plusieurs librairies qui se trouve pourtant dans ce répertoire. Je précise le nom de ces librairies de la manière suivante -lfftw3f par exemple. Si je remplace par /usr/lib/libfftw3f.so.3.2, il n'y a pas de problème. Mais la même ligne sur une autre machine et avec une autre version de gcc fonctionne, quelqu'un a une idée pour expliquer ce dysfonctionnement.

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Je compile en 32 bits sur une machine 64
    as tu essayé le flag -m32?

    gcc -m32 ....


    Autrement pour les flag -L -l il semblent correctement utilisés.
    Ensuit il faudrait le message d'erreur exact ainsi que la ligne de commande qui t'as servi a faire l'édition de lien.

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai bien sûr le flag -m32

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 906
    Points : 220 164
    Points
    220 164
    Billets dans le blog
    126
    Par défaut
    J'ai l'impression de connaitre cette erreur, lorsque je fais de la compilation cross platforme.

    Bref, de mémoire ( et je ne me rapelle jamais comment modifier ça ), c'est que vous avez les version 64bits des bibliothèques. Si vous faites une compilation en 32 bits, il voudra les versions 32 bits. Celle ci ne se trouveront pas dans /usr/lib, car dans /usr/lib c'est les versions 64bits ( utilisé par votre système en ce moment même ).
    Je ne sais pas ou vous pouvez trouver les versions 32 bits ... par contre.
    Ou sinon, c'est une histoire des liens symbolique des libs :s. Je ne suis pas trop sur

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Les librairies sont bien 32 bits, les lbrairies 64 bits sont dans /usr/lib64

    Ma compilation donc mon mon makefile fonctionne sur une autre machine 32 bits avec les mêmes librairies, le problème vient vraiment de la non prise en compte du chemin -L/usr/lib dans l'édition de lien.

    Pour vous éclairer je vous mets en dessous en premier la ligne de commande qui ne fonctionne pas avec l'erreur qui apparaît puis en deuxième lieu celle qui apparaît. LA seule différence est que je mets le chemin complet vers la librairie fft3wf (c'et d'ailleurs un lien symbolique) dans la deuxième ligne de commande. La premire qui ne marche pas sur mon PC fonctionne bien sur un autre PC 64 bits, la seule différence entre les deux étant la version de mandriva et la version de gcc.

    gcc objs/main.o -o sicfridNG -g -DLinux -m32 -L/opt/intel/Compiler/11.1/064/lib/ia32/ -L/usr/lib /home/mde/hemon/beta/lib/Linux32_64/sicfridNG.a /home/mde/hemon/beta/lib/Linux32_64/parametrage.a /home/mde/hemon/beta/lib/Linux32_64/math.a /home/mde/hemon/beta/lib/Linux32_64/outils.a /home/mde/hemon/beta/lib/Linux32_64/io.a /home/mde/hemon/beta/lib/Linux32_64/mesures.a /home/mde/hemon/beta/lib/Linux32_64/send.a /home/mde/hemon/beta/lib/Linux32_64/Clib.a /home/mde/hemon/beta/lib/Linux32_64/Xml_lib.a /home/mde/hemon/beta/lib/Linux32_64/holocart.a /home/mde/hemon/beta/lib/Linux32_64/libcpcl.a -lfftw3f -lifcore -limf -lirc_s -lirc -lm -ldl

    /usr/bin/ld: cannot find -lfftw3f

    gcc objs/main.o -o sicfridNG -g -DLinux -m32 -L/opt/intel/Compiler/11.1/064/lib/ia32/ -L/usr/lib /home/mde/hemon/beta/lib/Linux32_64/sicfridNG.a /home/mde/hemon/beta/lib/Linux32_64/parametrage.a /home/mde/hemon/beta/lib/Linux32_64/math.a /home/mde/hemon/beta/lib/Linux32_64/outils.a /home/mde/hemon/beta/lib/Linux32_64/io.a /home/mde/hemon/beta/lib/Linux32_64/mesures.a /home/mde/hemon/beta/lib/Linux32_64/send.a /home/mde/hemon/beta/lib/Linux32_64/Clib.a /home/mde/hemon/beta/lib/Linux32_64/Xml_lib.a /home/mde/hemon/beta/lib/Linux32_64/holocart.a /home/mde/hemon/beta/lib/Linux32_64/libcpcl.a /usr/lib/libfftw3f.so.3 -lifcore -limf -lirc_s -lirc -lm -ldl

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 906
    Points : 220 164
    Points
    220 164
    Billets dans le blog
    126
    Par défaut
    Alors dans ce cas là, vérifiez qu'il y a un lien symbolique appeler libfftw3f.so dans /usr/lib qui pointer sur /usr/lib/libfftw3f.so.3

    Je ne vois pas autre chose

  7. #7
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par rage31 Voir le message
    Les librairies sont bien 32 bits, les lbrairies 64 bits sont dans /usr/lib64

    un moyen d'en être certain est d'executer la commande "file" sur les librairies de /usr/lib


    chez moi, sur une deian, il me dit que ce sont des elf 64 bits (malgrès le fait d'avoir des librairies dans /usr/lib64)

  8. #8
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ces réponses et propositions, mais j'ai déjà essayé tout cela.
    J'en ai parlé avec mon administrateur système qui ne comprend pas non plus. Je finirai bien par trouvé la solution. Si vous avez d'autres idées n'hésitez pas, et je vous tiens au courant si je trouve une solution.

  9. #9
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Apparemment tout remarche normalement sans modifications de mes makefile, je pense que ce devait être un problème système mais mon administrateur est en vacances, il ne peut pas m'en dire plus.

    Merci encore à tous pour votre aide.

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

Discussions similaires

  1. Problème edition de lien
    Par gege87270 dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 02/10/2007, 09h46
  2. [Posix] problème librairie posix edition de lien
    Par hortensinette dans le forum Développement OS X
    Réponses: 1
    Dernier message: 12/04/2007, 15h57
  3. [problème peu urgent] lien entre formulaire et table
    Par ghyosmik dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 12h23
  4. [html+css] problème menu avec liens display:block
    Par Cypselos dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 28/08/2005, 09h39
  5. Rôle de l'édition de lien?
    Par sali dans le forum C
    Réponses: 6
    Dernier message: 14/05/2005, 21h17

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