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 :

Bibliotheque partage (.so) et gcc dans Linux


Sujet :

Autres éditeurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut Bibliotheque partage (.so) et gcc dans Linux
    Bonjour! Ma question concerne les bibliotheque partage dans linux (lib***.so), le compilateur gcc, le linker. (je m'excuse d'avance pour un melange franco-anglais...)

    La question:
    On a un fichier binary et il faut le lier avec une shared library avec un linker. Est-ce possible de rajouter des donnees du fichier source (***.cpp par exemple) a cette bibliotheque PENDANT le processus de linkage? Et comment le faire?

    N'importe quelle reponse irait, mais serais mieux si vous repondez directement pour le compilateur gcc 2.95 (ou plus vieux ~ 2.94....).

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    euhhhhhhhhhh j'ai rien compris à ce que tu as dit

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut
    pour etre plus court:
    Est-ce qu'il ya un moyen de modifier (ou d'ajouter des elements) une "shared library" (fichier ".so" pour linux = ".dll" pour windows)?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Je n'y crois pas trop ou alors en bidouillant à fond avec les options de ld.

    Ceci est possible avec les librairies statiques. Il est très facile de rajouter un symbole à une archive.

    Mais la tâche se complique pour les librairies dynamiques. Tu aurais la librairie statique équivalente, je te dirais oui. Il te suffit d'utiliser l'option --whole-archive de ld pour ajouter à une librairie dynamique tous les symboles de ta librairie statique ainsi que ceux que tu veux en plus. On ne peut pas imaginer utiliser cette option pour une librairie dynamique : il y aurait sûrement des multiples définitions.

    Je viens de regarder ce que faisait libtool avec les `convenient libraries`. Les `convenient libraries` sont utilisées pour créer plusieurs librairies qu'on réunit au final dans une seule et même librairie. Mais dès qu'on travaille avec ces librairies, libtool ne génére plus que des libraries statiques. Seule la librairie finale peut être dynamique. A croire que ton problème n'a pas de solution.

    Voilà ce que je peux dire. Mais maintenant si quelqu'un voit un moyen de faire, propre, je suis preneur aussi...

  5. #5
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut
    mais il doit y avoir une solution. pour l'instant je cherche sans arret mais je ne trouve rien, peut etre parce que je suis loin d'etre expert dans ce theme.

    Mais a ce que j'ai compris libtool c'est l'un des meilleurs programmes pour gerer les libraries?
    Et qu'est ce que vous en dites de "dlopening" ou de "Reloadable objects" ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    dlopening c'est pour charger une librairie dynamique à l'éxécution. Ca ne rajoute pas le symbole dans la librairie.

    J'ai regardé "reloadable objects" de libtool.
    Ca s'applique aux objets pas aux librairies dynamiques.

    On a un fichier binary et il faut le lier avec une shared library avec un linker. Est-ce possible de rajouter des donnees du fichier source (***.cpp par exemple) a cette bibliotheque PENDANT le processus de linkage?
    Et si on revenait au problème de base. Quelle est la question, en clair ?
    Il est toujours possible de générer une nouvelle librairie dynamique qui contiennent les symboles du fichier "binary" mais sûrement pas tous les symboles de la "shared library".

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/06/2008, 13h37
  2. [débutant]compiler avec gcc sous linux
    Par Ickou dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 10/03/2006, 17h27
  3. [Partage de fichiers] Impossible dans un sens
    Par Raideman dans le forum Windows XP
    Réponses: 5
    Dernier message: 19/12/2005, 09h54
  4. Utilisation de classes C++ dans linux
    Par DestinyWar45 dans le forum Linux
    Réponses: 4
    Dernier message: 10/10/2005, 13h33
  5. Installer gcc sur linux SuSE
    Par rabobsky dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 18/03/2005, 18h28

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