MinGW - compilation statique ou dynamique

Résolu
nikoladu49 Messages postés 258 Statut Membre -  
nikoladu49 Messages postés 258 Statut Membre -
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 789 Statut Membre 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 258 Statut Membre 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 10112 Statut Contributeur 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 258 Statut Membre 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