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

Linux Discussion :

edition de lien avec librairie statique


Sujet :

Linux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut edition de lien avec librairie statique
    Bonjour,

    J'essaye de compiler un programme c++ avec opencv qui contient une librairie statique. J'ai ajouté son chemin dans /etc.ls.so.conf.d/ puis de taper la comande ldconfig sous le compte root. Mais lors de la compilation, toujours je reçois le message "skipping incompatible ./libFPClassifier.a when searching for -lFPClassifier"
    Je voudrais avoir des idées pour résoudre ce pb
    Merci d'avance !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    voici ce que j'en tire avec le peu d'informations que tu transmets

    Dans le répertoire où tu fais la compilation, tu disposes d'un fichier libFPClassifier.a. Ce fichier contient une version de la bibliothèque statique que tu cherches à utiliser, mais compilée pour une autre plate-forme et donc incompatible.

    En règle générale, il n'est pas nécessaire de modifier /etc/ld.so.conf si l'on veut linker avec une bibliothèque statique. Il suffit d'ajouter des directives de compilation qui indiquent la localisation de la bibliothèque dans le système de fichiers. Mais il faudrait que tu indiques plus explicitement où se trouve la bibliothèque libFPClassifier, et/ou comment tu l'as récupérée/compilée. Il serait également utile d'indiquer la ligne de compilation complète...

    MarkH

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Lib statique
    Bonjour,

    C'est pratiquement ça, j'essaye d'utiliser la bibliothèque sur un fedora 7 64 bit alors qu'il était compillé sur un debian 32 bit. En cherchant sur le net, j'ai trouvé que je dois trouver des rpm pour accepter la lib sur le fedora. la commande linux32 du bash ne donne pas grand chose

    -Younès-

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 340
    Points : 177
    Points
    177
    Par défaut
    "En règle générale, il n'est pas nécessaire de modifier /etc/ld.so.conf si l'on veut linker avec une bibliothèque statique" <-- c'est meme inutile

    ld.so.conf est un fichier regroupant les repertoires où les shared lib (les .so) sont cherchees lors de l'execution d'un prog.

    si tu veux linker contre libtoto.a qui se trouve dans /mon/repertoire, tu as (au moins) 3 solutions:

    1) passer directement le fichier avec son repertoire :

    gcc -o ** **.c /mon/repertoire/libtoto.a

    2) utiliser l'option -L de gcc. Dans ce cas, on peut utiliser l'option -l. L'utilisation est la suivante :

    gcc -o ** **.c -L/mon/repertoire -ltoto

    remarque : ne pas utiliser : -llibtoto.a. -lfoo rajoute "lib" et ".a" respectivement avant et apres "foo"

    il va donc utiliser libtoto.a qui se trouve dans
    a) /mon/repertoire
    b) sinon, dans les repertoires listes dans la variable LDFLAGS
    c) sinon dans /usr/lib (et peut-etre dans d'autres repertoires courants)

    3) modifier LDFLAGS en ajoutant -L/mon/repertoire et en utilisant -ltoto

    export LDFLAGS="$LDFLAGS -L/mon/repertoire"
    gcc -o ** **.c -ltoto

    apres, pour l'utilisation d'une lib statique compilee sur une architecture 32bits dans une architecture 64bits, je ne sais pas. Je n'ai jamais essaye.

Discussions similaires

  1. Edition de lien avec QT4
    Par uriotcea dans le forum C++Builder
    Réponses: 0
    Dernier message: 09/01/2008, 16h53
  2. Réponses: 11
    Dernier message: 20/01/2006, 12h35
  3. Edition de liens et librairie dynamique
    Par nicolas.pied dans le forum C++
    Réponses: 9
    Dernier message: 14/11/2005, 14h29
  4. Réponses: 2
    Dernier message: 19/08/2005, 16h02

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