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 :

[.a or .so] - librairie statique ou partagée ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Par défaut [.a or .so] - librairie statique ou partagée ?
    bonjour a tous !!

    je souhaiterai avoir votre avis sur le sujet
    "librairie statique ou partagé"

    comment faire pour choisir ? les +, les - de chacun. possibilité de portage, ...

    merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    ça dépend de beaucoup de choses...

    une librairie statique ça veut dire rien à distribuer avec le programme finale, mais aussi tout le programme à modifier en cas de mise à jour de la librairie.

    une librairie dynamique ça veut dire qu'il faut la distribuer avec le programme finale, pas vraiment problématique pour des programmes avec installateurs, mais si on met à jour les fonctions interne de la librairie (la partie compilée sans toucher à son interface), on n'a que la librairie à redistribuer.

    ensuite les choix sont nombreux, sur un plan général, c'est assez difficile à organiser, une librairie statique peut permettre d'optimiser le code exécutable généré par le compilateur dans certains cas... Une librairie dynamique permet de distribuer des exécutables plus petits utilisant tous une même librairie.

    C'est un sujet très complexe, et dans un contexte totalement général, je pense que les deux se valent.
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éclairé Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Par défaut
    ok, merci

    en ce qui concerne l'appel de ces librairies je ne trouve que de la doc pour le C avec 'dlopen() ...' en ce qui concerne le C++ existe t il d'autre moyen ou en général on continu a utilisé ce dlopen() ?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    en ce qui concerne l'appel de ces librairies je ne trouve que de la doc pour le C avec 'dlopen() ...' en ce qui concerne le C++ existe t il d'autre moyen ou en général on continu a utilisé ce dlopen() ?
    dlopen et ses équivalents non-Linux sont toujours utilisés en C++ : il s'agit d'appels système propres à l'OS n'ayant pas grand chose à voir avec le langage.

    Mais en général, on n'utilise le chargement explicite de bibliothèques dynamiques que rarement (système de plugin, etc...).

    Ca pourrait nous aider si tu nous disais quel genre de bibliothèque tu veux développer.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Les bibliothèques statiques ont aussi un inconvénient : seules les fonctions appelées par le programme seront conservées, et ça s'applique à certaines variables globales qui se chargent automatiquement - chargées d'initialiser qqch par exemple - qui peuvent donc ne plus "fonctionner"

  6. #6
    Membre éclairé Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Par défaut
    Citation Envoyé par Laurent Gomila
    Ca pourrait nous aider si tu nous disais quel genre de bibliothèque tu veux développer.
    je souhaiterai écrire l'implementation de la RFC 977 (NNTP) en C++ (full objet) ; j'ai beau chercher... j'en ai pas trouvé ?? et j'en ai besoin pour un p'tit projet genre Klibido mais pour gnome 2.

  7. #7
    Membre éclairé Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Par défaut
    ... sinon quelqu'un a une petite doc sur la facon d'utiliser (les méthodes d'appels, ...) les lib quelle soit static ou partagée dans un code C++ (donc sans utilisé dlopen())

  8. #8
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par Laurent Gomila
    dlopen et ses équivalents non-Linux sont toujours utilisés en C++ : il s'agit d'appels système propres à l'OS n'ayant pas grand chose à voir avec le langage.

    Mais en général, on n'utilise le chargement explicite de bibliothèques dynamiques que rarement (système de plugin, etc...).

    Ca pourrait nous aider si tu nous disais quel genre de bibliothèque tu veux développer.
    La Glib propose une alternative portable (Windows - Linux pour ce que j'en sais) pour le chargement d'une lib dynamique !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  9. #9
    Membre éclairé Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Par défaut
    Citation Envoyé par Franck.H
    La Glib propose une alternative portable (Windows - Linux pour ce que j'en sais) pour le chargement d'une lib dynamique !

    tu fait allusion a ?

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

Discussions similaires

  1. Librairie partagée versus librairie statique ?
    Par Luke spywoker dans le forum Débuter
    Réponses: 6
    Dernier message: 05/02/2015, 03h26
  2. Librairie partagé VS librairie statique
    Par Madmac dans le forum Linux
    Réponses: 4
    Dernier message: 03/02/2006, 21h09
  3. Réponses: 5
    Dernier message: 22/12/2005, 17h31
  4. Réponses: 2
    Dernier message: 19/08/2005, 16h02
  5. librairie statique/dynamique
    Par trop_wizz dans le forum MFC
    Réponses: 4
    Dernier message: 11/04/2005, 10h04

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