Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 4


|
Conversation (Résolue) : Monolithique vs Multilib |
paul_c_weiss (Membre)
Inscrit le : 07-12-2012
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Bonjour, Une question bien naïve! Il est possible d'installer wxWidget en version "monolitique" ou "multilib". Dans ma première installation, j'avais utilisé la version monolithique. Ca me semblait très bien marcher... Ensuite, j'ai du réinstaller, et certains commentaires sur le Web m'ont poussé à utiliser la version "multilib". Ca marche toujours très bien, mais avec Code::Blocks c'est un peu pénible, parce qu'il faut alors déclarer explicitement une foultitude de libraire, dans un ordre précis, même pour un projet du type "Hello World"...
Donc, j'aimerais bien connaître plus précisément les différences entre ces 2 options, en particulier au niveau de l'exécutable. Est-il plus gros en version monolithique?
J'imagine bien que le link en version monolithique prend plus de place et de temps, mais, d'après ma faible expérience, cela me semble marginal.
Quelqu'un pourrait-il m'éclairer, parce que je dois réinstaller (nouvelle machine!)?
Merci d'avance, et meilleures salutation!
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
Hello.
Je viens de faire le test sur deux des exemples fournis avec les libs : "Minimal" et "Widgets" (pour en avoir un "au plus simple" et un autre très complet). J'ai utilisé les makefiles fournis, et je n'ai quasiment pas de différences au niveau de la taille des exécutables, que ce soit en link statique ou dynamique. Mais je pense que ce résultat vient du fait que les makefiles ne sont pas optimisés et qu'iils utilisent à chaque fois la totalité des libs.
Parce qu'en théorie, le principe est justement de réduire la taille de l'exécutable ainsi que le temps de compilation/link. Pour faire simple, avec la version monolithique, tout est dans un seul fichier : c'est donc plus facile à gérer au niveau projet (notamment comme tu le dis sous Code::BLocks), mais tu fournis toute la lib à chaque fois.
Avec la version Multi-lib, tu ne linkes que ce que tu utilises : c'est donc plus optimisé. Mais c'est un peu plus pénible à gérer.
Malgré tout, je pense que dans le cas d'un gros projet, le monolithique serait à privilégier. C'est d'ailleurs le cas de Code::Blocks : il utilise une version monolithique des libs.
Il est à noter que tu n'est pas forcément obligé de choisir entre les deux : tu peux installer les deux versions et te faire ton propre avis.
Tiens nous au courant de tes éventuels tests, et surtout de ton choix final.
@+ Xav'
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
paul_c_weiss (Membre)
Inscrit le : 07-12-2012
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Merci pour cette réponse rapide! J'ai toutefois un peu de peine à comprendre: Pourquoi faut-il privilégier l'option monolithique pour les gros projets, où la taille de l'exécutable peut devenir critique? Il me semble que c'est justement le cas où on voudrait optimiser la taille? Quelque chose m'échappe, apparemment!
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
Snippets: 25
Tutoriels: 6
Site web
Hors ligne |
En fait, sur un gros projet, tu as plus de chances d'utiliser la majeure partie des libs. Tu ne pourras donc pas économiser de la place en omettant certaines parties des libs.
|
Le nouveau portail wxWidgets francophone : www.wxdev.fr Ben en fait, vous y êtes déjà ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
paul_c_weiss (Membre)
Inscrit le : 07-12-2012
Messages: 28
Snippets: 0
Tutoriels: 0
Hors ligne |
Bon, merci! Alors j'ai ce que je cherchais, et je vais clore la discussion pour l'instant. Je vous tiendrai au courant, mais dans quelque temps!
Merci encore
|
|
|