Déployer un exécutable

a marqué ce sujet comme résolu.
Auteur du sujet

Bonjour,

J’ai suivi le cours c++ de ce site et afin de mettre en pratique ce que j’avais appris, j’ai tenté de créer une (toute) petite application (une calculatrice pour des heures et minutes). Celle-ci utilise la bibliothèque wxWidgets pour l’interface, quelques images (4) pour la toolbar et un fichier texte pour mémoriser des durées. Après compilation, j’ai un .exe qui fonctionne très bien sur ma machine, mais il est destiné à une amie.

Mes questions sont donc: Comment faire pour qu’elle (mon amie) puisse utiliser l’exécutable? Est-il possible d’inclure dans l’exe les images et la bibliothèque (ou juste la partie utilisée)? Ou comment les inclure avec un installateur? (pour les images j’ai réussi)

J’ai pas mal cherché sur internet, mais j’ai du mal m’y prendre, je n’ai pas trouver de réponse adaptée… Et vous l’aurez surement compris, je ne suis pas au top sur bibliothèques statiques ou dynamiques.

PS: Je ne dois pas bien comprendre ce qu’il se passe lors de la compilation, la création de l’exe, le lien avec le fichier ressource… Si vous avez un lien qui puisse m’éclairer sur ce sujet je suis preneuse.

Merci d’avance.

+0 -0

Hello,

Je vais partir du principe que tu es sous windows. La réponse est différente pour les autres systèmes.

Pour créer un installateur, regarde du côté de InnoSetup. Je l’utilise depuis des annés et je n’ai jamais eu aucun problème avec.

Maintenant, pour les bibliothèques à fournir avec ton programme,

1 - Il faut que tu fournisses les DLL de WXWidgets. Normalement elles sont assez simples à identifier, tu as certainement dû les placer dans le dossier où se trouve ton exécutable.

2 - Selon ton compilateur, il faut aussi fournir les DLL du runtime C++. Pour Visual C++, voir Visual C++ redistributable. Pour les autres, je n’ai pas les listes exactes mais elles se trouvent facilement sur le net.

Après il y a des méthodes moins académiques pour déterminer exactement quelles DLL un programme utilise, parmi lesquelles, en vrac:

  • Démarrer l’exécutable sur un autre PC que le tien et ajouter les DLL manquantes une par une tant que tu obtiens une erreur de DLL… oui c’est stupide et inefficace à souhait, mais au pire après 20 ou 30 essais tu devrais arriver au bout
  • Avec des utilitaires comme TDump ou dependency walker par exemple
  • strings programme.exe | grep -i .dll (Oui les noms des DLL sont écrites en clair, y compris les DLL liés à l’édition des liens)

Ma plateforme avec 23 jeux de société classiques en 6 langues et 13000 joueurs: http://qcsalon.net/ | Apprenez à faire des sites web accessibles http://www.openweb.eu.org/

+0 -0
Auteur du sujet

Bonjour,

Merci beaucoup de m’avoir lu et répondu. Et oui, effectivement je suis sous windows ^^ .

J’ai téléchargé l’installateur de visual studio (comme ça je peux tout faire au même endroit) et j’ai réussi à y inclure mes images en créant un second projet (setup) à ma solution.

Je suppose donc que je dois faire la même manip avec toutes les dll… Je pensais que ça se faisait automatiquement car dans le projet setup (dans la même solution que mon code) il n’y a aucune dépendance détectée.

Je vais donc essayer d’y ajouter les dll de wxWidgets et celles de visual C++.

Merci beaucoup de m’avoir répondu. Je teste et je reviendrai vous dire ce qu’il en est.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte