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 de linkage statique sous G++


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 230
    Points : 132
    Points
    132
    Par défaut Problème de linkage statique sous G++
    Bonjour,

    après avoir lu de nombreuses discussions très intéressantes sur le linkage sous G++, je n'ai malheureusement pas trouvé la réponse à ma question. En fait celle-ci se rapproche de mon dernier post qui concernait minGW et que je croyais lié à Windows mais ca n'est pas le cas... Voici un petit résumé :

    Soient 2 environnements de dev :
    -Mac OS X 10.6, GCC 4.2, make, libboost compilé en statique par mes soins, liba.a et libb.a compilées sous Mac OS
    -Ubuntu 10, GCC 4.3, make, libboost compilé par mes soins, liba.a et libb.a compilées sous Ubuntu

    Dans l'état actuel des choses tout se compile parfaitement sur les 2 environnements. La librairie a est compilée et la librairie b aussi.

    Sous MacOS, le linkage s'effectue sans aucun problème en statique sans que j'ai besoin de faire quoi que ce soit (pas d'option de linkage). Je précise que j'ai vérifié gcc -v et il n'y a pas l'option --enable-shared (sous mac le linkage se fait différemment).
    Sous Ubuntu, le linkage plante... ce qui s'appelle planter ! Il ne semble trouver aucune de mes librairies (ni boost, ni a, ni b). Je n'ai que des undefined reference... Pourtant j'ai bien précisé les chemins en -L, d'ailleurs si je mets il plante en me disant qu'il ne trouve pas libf...
    J'ai même ajouté pour le forcer à linker avec les librairies statiques... Et rien à faire... Il ne linke que dalle !

    Petite précision, si je décompose mon projet :
    programme principal : o.out
    librairies : liba.a, libb.a, libboost_xxx-mt-(s)d.a
    avec liba.a utilise des symboles de libb.a

    Si j'utilise uniquement liba avec mon programme ca compile, ca linke et ca s'exécute parfaitement.
    Si j'utilise libb avec mon programme, ca compile, ca ne linke pas (j'ai beau linker liba aussi).
    Si je parle de libboost c'est juste pour préciser que le linkage échoue avec toutes les librairies, pas seulement les miennes et qu'il y en a d'autres (pion, crypto, pcap...) avec lesquelles ca échoue dans le même linkage.

    Si quelqu'un voulait bien me donner l'astuce qui tue, je pense que ca pourrait être mis dans la FAQ pour aider les gens qui compilent sur plusieurs OS...

    Merci à vous !

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Un problème d'outils ? Bien installé ? Mêmes versions ? Options de compilations compatibles ?

Discussions similaires

  1. [Débutant] Problème de linkage sous Linux
    Par m_a_xim dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 11/07/2009, 12h23
  2. Réponses: 3
    Dernier message: 04/12/2008, 19h29
  3. Problème de linkage sous visual studio 2005 sp1 avec gtk+
    Par DarkVenoM dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 26/03/2007, 18h50
  4. Code::Blocks sous Linux problème de linkage
    Par JuTs dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 22/03/2006, 16h54
  5. Problème de transfert FTP sous IIS
    Par thanathz dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h27

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