J'écris un programme C++ multi-plateforme en utilisant Qt et je veux emballer/incorporer un certain nombre d'exécutables binaires dans le programme. Le programme devrait être capable d'exécuter ces binaires lors de l'exécution. J'ai pensé, j'aurais besoin de QResource et QProcess en utilisant start() et la notation ":/...", mais je ne pense pas que le processus fonctionne. Y a-t-il quelque chose qui me manque? Est-ce que ça devrait fonctionner comme ça? Le binaire doit-il être défini comme exécutable? Contexte: J'écris un outil qui utilise Git et je ne veux pas que l'utilisateur final installe Git manuellement.Comment intégrer un exécutable binaire (à exécuter à l'exécution) dans un programme Qt?
(Essayer ceci sur Mac OS X, BTW.)
Mise à jour:
J'utilise le code suivant (C++, Qt sous Mac OS X):
QString program = ":/git";
QStringList arguments;
arguments << "help" << "commit";
myProcess->start(program, arguments);
L'exécutable Git se trouve dans le chemin du projet, mes ressources.qrc le font comme ceci:
<qresource prefix="/">
<file>git</file>
</qresource>
Je n'obtiens pas d'erreur, mais le programme n'est pas exécuté. Le comportement est le même lorsque j'ai défini program
sur un fichier inexistant. Remplacer ":/git"
par le chemin absolu de git fonctionne parfaitement.
S'il vous plaît, nous fournir le code source. À savoir la partie où vous utilisez QResource et QProcess que vous avez mentionné. – Wildcat
J'ai mis à jour la question avec le code que j'utilise – jan