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 :

[gcc] -lm, -lpthread pour tous les fichiers ou pas ?


Sujet :

Autres éditeurs

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut [gcc] -lm, -lpthread pour tous les fichiers ou pas ?
    Bonjour,
    Utilisant gcc, il m'arrive d'utiliser -lm et/ou -lpthread pour utiliser les maths ou les threads posix.
    Ma question est : est il important de linker ces "libraries" seulement pour les fichiers en ayant besoin ? Autrement dit le faire pour tous les fichiers est il une aberation ?

    Dans le cas de le faire que pour des fichiers precis, cela signifie qu'il faut (pour un makefile fait main) creer des regles paritculieres de "link" pour ces fichiers.

    Cependant lier avec tous les fichiers fonctionne donc pourquoi se prendre la tete ? Mais cela a t il des consequences nefastes ? (Taille des fichiers beaucoup plus grosses?)

    D'avance merci

  2. #2
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Tu peux linker inutilement des librairies, les modules contenant des fonctions non utilisées dans ton programme ne seront pas attachés à l'exe
    ..car il faut bien savoir qu'une librairie statique n'est qu'une archive de .o

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    de toute façon tu n'as pas le choix puisque tous les fichiers objets sont assemblés en un seul fichier exécutable. Donc si tu compile en statique tu ajoute un fichier de plus, si tu compile en dynamique, c'est l'exécutable qui contiendra les références, et non chaque fichier objet séparé

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    En fait c'est dans le cas de statique (-lm et -lpthread, c'est bien statique, non ?), et si je me pose la question, c'est que j'ai effectivement plusieurs executables realisés par mon makefile. (Des tests, et des programmes independants, dont certains apellant d'autres...)

    Donc si j'ai bien compris, de toute facon, en l'absence d'utilisation le comportement est le meme que sans (pas d'augmentation de la taille des fichiers-qui sont des executables...)

    Donc typiquement un EDI pourrait rajouter plein de "libraries" pour lier sans penaliser les programmes ainsi realisé.

    PS : Merci d'avoir déplacé le sujet vers un sujet plus proche

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par TabrisLeFol
    (-lm et -lpthread, c'est bien statique, non ?)
    Par défaut je ne pense pas, il doit falloir ajouter l'option --static, mais dans le cas où les bibliothèques dynamiques n'existe pas, c'est peut être les statiques qui sont utilisées.

    Citation Envoyé par TabrisLeFol
    Donc si j'ai bien compris, de toute facon, en l'absence d'utilisation le comportement est le meme que sans (pas d'augmentation de la taille des fichiers-qui sont des executables...)
    Si tu as plusieurs exécutables, il faut que chacun soit lié aux bibliothèques qu'il utilise. Dans le cas d'une édition statique la taille du fichier exécutable augmente à chaque bibliothèque, par contre en dynamique l'augmentation est minime puisque tu ajoute des références vers un fichier qui sera chargé uniquement en cas de besoin lors de l'exécution.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    OK.
    Merci.

Discussions similaires

  1. Réponses: 13
    Dernier message: 17/07/2021, 16h16
  2. Réponses: 3
    Dernier message: 04/05/2009, 08h28
  3. code pour calculer tous les fichiers du dossier
    Par linel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/02/2009, 16h49

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