MinGW - compilation statique ou dynamique

Résolu
nikoladu49 Messages postés 228 Date d'inscription   Statut Membre Dernière intervention   -  
nikoladu49 Messages postés 228 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'utilise le compilateur MinGW, et j'ai le choix entre compiler en dynamique (besoin de *.dll) ou en statique (pas besoin de *.dll). Je sais comment faire pour compiler avec ses deux "modes" là, mais j'aimerais en savoir plus sur chacun d'eux.

Quels sont donc les avantages et inconvénients à utiliser la compilation statique ou dynamique ?
Merci d'avance.

PS : je ne debug jamais. Je faire toujours du release.



A voir également:

3 réponses

loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
Bibliothèque statique:
- incorpore la bibliothèque -> donc inutilité qu'elle soit déjà installée,
- incorpore la bibliothèque -> donc exécutable plus volumineux,
Bibliothèque partagée:
- n'incorpore pas la bibliothèque -> donc nécessité qu'elle soit installée,
- n'incorpore pas la bibliothèque -> donc exécutable réduit au minimum,
- la bibliothèque est partagée -> elle peut être utilisée par plusieurs applications -> moins d'espace mémoire utilisé.
- la bibliothèque est partagée -> attention à l'utilisation des variables globales et à la réentrance des fonctions,
- la bibliothèque est installée -> elle peut donc être mise à jour sans avoir besoin de recompiler toutes les applications qui font appel à elle.
Bonne continuation.
1
nikoladu49 Messages postés 228 Date d'inscription   Statut Membre Dernière intervention   22
 
Je te remercie pour l'explication :)

Et que me conseilleriez-vous pour un programme en console ?
Je ne sais pas trop quel méthode choisir.
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
ça dépend des bibliothèques utilisés, de leur universalité, de leur volume. C'est la raison qui décide, en fonction des avantages et inconvénients cités par loupious.
Une bibliothèque volumineuse et installé sur toutes les machines a intéret à être en dynamique. Une bibliothèque plus petite que l'éxecutable et spécifique (ou "maison") à tout intéret à être lié au programme.
Une bibliothèque petite est universelle : peu importe
une bibliothèque volumineuse et "rare" : le problème est plus épineux et dépendra d'autres facteur (comme la mise à disposition du programme)
Le fait que le programme soit en mode console ne présuppose rien de sa complexité et de sa taille, ni des bibliothèques qu'il utilise.
Il faut jugé au cas par cas.
0
nikoladu49 Messages postés 228 Date d'inscription   Statut Membre Dernière intervention   22
 
Donc pour la STL par exemple, je compilerais en statique, et les bibliothèques comme Qt et SFML, je les compilerais est dynamique.

Merci.
0