Je cross-poste sans FU2 car je ne sais pas quel est le groupe le plus
adapté, et la réponse peut même varier selon l'OS, alors je vous laisse
voir...
J'écris un programme en C++ avec une interface en GTK+ (mais mes questions
sont plus générales). Sous Windows, GTK+ est livré avec des .def, .lib,
.dll.a, et .dll (chaque bibli a un ou plusieurs fichiers avec ces
extensions). Sous Linux j'ai des .so et .la pour certaines biblis,
seulement des .so pour d'autres.
Je compile avec GCC (dans MinGW sous Windows). Je voudrais obtenir un
exécutable qui se suffise à lui-même, c'est-à-dire utilisable sans
installer GTK+ au préalable (donc distribuable sans redistribuer GTK+ à
côté). Je croyais l'obtenir en passant l'option -static à GCC, d'ailleurs
le fichier produit est beaucoup plus gros avec cette option que sans. Mais
patatras : sous Win, si je tente de lancer l'exécutable « statique » sur
une machine n'ayant pas GTK+, j'obtiens une erreur « ne trouve pas
libmachin.dll » ; sous Linux, n'ayant pas de machine sans GTK+ à dispo, je
n'ai pas pu tester (y a-t-il moyen de « cacher » les biblis installées le
temps d'un test ?).
Mes questions sont donc :
- peut-on produire un exécutable qui se suffise à lui-même, et avec
quelles options de compilation ?
- si oui, quels sont les ingrédients nécessaires en termes de
bibliothèques (quel format de fichier) ?
- à défaut, peut-on « dégraisser » des bibliothèques dynamiques pour n'en
garder que les fonctions réellement utilisées par l'application ? (L'idée
étant d'alléger au maximum le paquet exécutable+biblis à distribuer.)
Pour mon problème particulier, j'ai trouvé http://mingw-cross-env.nongnu.org/ qui répond parfaitement à mon besoin et même plus (plus besoin de booter Win pour compiler). Ce "package" compile en statique tout un tas de bibliothèques, dont GTK.
L'équipe de GTK ne distribue pas de version statique. Ils le déconseillent même dans le cas général (à cause de l'i18n apparemment).
-- LL
Bonjour,
Merci à tous de m'avoir tant instruit.
Pour mon problème particulier, j'ai trouvé
http://mingw-cross-env.nongnu.org/ qui répond parfaitement à mon besoin et
même plus (plus besoin de booter Win pour compiler). Ce "package" compile
en statique tout un tas de bibliothèques, dont GTK.
L'équipe de GTK ne distribue pas de version statique. Ils le déconseillent
même dans le cas général (à cause de l'i18n apparemment).
Pour mon problème particulier, j'ai trouvé http://mingw-cross-env.nongnu.org/ qui répond parfaitement à mon besoin et même plus (plus besoin de booter Win pour compiler). Ce "package" compile en statique tout un tas de bibliothèques, dont GTK.
L'équipe de GTK ne distribue pas de version statique. Ils le déconseillent même dans le cas général (à cause de l'i18n apparemment).