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 :

Redondance de code entre librairies


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Points : 101
    Points
    101
    Par défaut Redondance de code entre librairies
    Bonjour,

    Je travaille sur un progiciel qui autorise l'appel de librairies C++ pour enrichir les fonctions disponibles pour les utilisateurs.
    J'ai créé des fonctions à partir de boost.date_time. En général les librairies de boost n'ont pas besoin d'être compilées, les headers contiennent tout le code.
    Cependant certaines nécessitent la compilation, notamment celle-ci en cas d'utilisation des fonctions de conversion, ce qui est mon cas.
    J'ai donc la librairie date_time compilée, et ma librairie avec mes fonctions mais qui contient aussi tout le code date_time !
    Comment faire pour éviter cette redondance de code ?

    Un petit schéma de synthèse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PROGICIEL -->  ma_librairie.so  -->  libboost_date_time-xlc-d-1_39.so
                      2 761 472 octets                2 099 365 octets
                        code X + Y                        code X

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 073
    Points : 12 119
    Points
    12 119
    Par défaut
    Ce n'est pas de la redondance de code.
    Avec des templates qui font de l'expansion en ligne comme les macros, c'est le même topo.
    Il y a indépendance entre les codes, heureusement.
    Si la taille de l'exécutable ou de la dll, vous pose un problème. L'utilisation d'un dll avec le code commun fera l'affaire. Mais vous liée tous les exécutables, les librairies et les autres dll qui se serviront de cette dll.
    La liaison est que tous ses composants devront utiliser la même version de dll.
    Avec la génération de code à la compilation, le code de votre exécutable pourra être compilé 10 ans après votre librairies sans problème (si les types définis par le code ne passe pas la frontière exe-dll bien sûr.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Points : 101
    Points
    101
    Par défaut
    Je n'ai pas bien compris ta réponse.
    Cependant j'ai recompilé en mode release et la librairie fait maintenant 360 ko.

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

Discussions similaires

  1. [HTML]Eviter les redondances de code
    Par Pfeffer dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 30/12/2005, 09h13
  2. [VBA] Code entre forms
    Par Virgile59 dans le forum Access
    Réponses: 3
    Dernier message: 28/12/2005, 21h57
  3. reprendre un enchainement de code entre deux formulaires.
    Par scully2501 dans le forum Access
    Réponses: 2
    Dernier message: 05/10/2005, 16h11
  4. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 16h58

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