Déployer un exécutable

a marqué ce sujet comme résolu.

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.

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)
+0 -0

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.

Bonjour,

N’ayant qu’un seul ordinateur, j’ai utilisé Hyper-V pour créer une VM de test tournant sous win7. Il est en 32 bits et mon appli en 64, donc erreur.

J’ai essayé de compiler en 32 mais je n’y arrive pas, visual studio ne trouve pas le dossier lib alors que je l’ai bien indiqué dans les paramètres du projet. De plus je n’arrive pas à compiler en release (encore des erreurs de liens).

J’ai suivi des dizaines d’explications pour lier wxWidgets à Visual Studio, mais je doit être trop "con", rien ne fonctionne.

J’abandonne, mais merci encore pour le coup de main.

JE ne peux pas t’aider plus que ça avec Visual Studio, j’utilise MinGW-W64.

Mais normalement ça ne devrait pas être compliqué, tu dois pouvoir spécifier les fichiers .lib de WXWidgets dans les propriétés de ton projet.

+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