Bonjour à tous
J'ai développer une application sous Qt et je souhaiterais avoir un exécutable portable pour linux et windows.
Mais je ne sait pas comment faire l'un d'entre vous à t-il une idée de comment faire ?
En vous remerciant
Version imprimable
Bonjour à tous
J'ai développer une application sous Qt et je souhaiterais avoir un exécutable portable pour linux et windows.
Mais je ne sait pas comment faire l'un d'entre vous à t-il une idée de comment faire ?
En vous remerciant
Salut,
Le problème, c'est que les binaires créés pour windows ne sont vraiment pas organisés de la même manière que ceux créés sous linux. Tu ne pourras donc pas obtenir un seul exécutable qui soit utilisable sous linux et sous windows (on est en C++, pas en java, ici :D)
Par contre, a priori, si tu as bien veillé à ne pas utiliser de fonctionnalités propres au système sur lequel tu as fait ton développement et que ton code compile sous windows (ou sous linux), tu devrais pouvoir arriver à le compiler sous "l'autre OS".
Tu as alors deux possibilités : utiliser ce que l'on appelle un compilateur croisé (cross compiler, en anglais), mais cela impliquera de disposer des deux versions de Qt ("native", correspondant à ton OS de développement et "croisées" correspondant à "l'autre OS) d'installées ou...
Effectuer la compilation sous les deux OS (l'un pouvant éventuellement être lancé dans une machine virtuelle comme virtualbox.
Bonjour
J'avais bien compris cela .
Le soucis c'est de pouvoir avoir un exécutable possédant les librairies que j'utilise afin d'utiliser mon application sur un ordi
ne possédant pas forcement Qt
Il y a une doc dédiée à ça (en anglais comme toujours) : http://doc.qt.io/qt-5/deployment.html
Sous Windows il suffit de copier les dll avec ton exécutable (tu peux faire une archive avec tout dans le même dossier et ça fonctionne, pour les plugins c'est plus délicat mais ça marche aussi).
Sous Linux ça m'avait paru moins évident quand j'avais essayé il y a longtemps. Et puis il y a différents Linux, je ne suis pas certain que ça fonctionne strictement pareil sur tous. En général sous Linux on utilise plutôt des gestionnaires de paquet, et donc on installe généralement Qt dans le système avec une dépendance sur son paquet.
merci pour ta réponse je pense que du cout je vais faire seulement un exécutable windows alors :)
Petite question ou retrouve mes .dll ?
Et est ce faisable de faire un genre de programme d'installation pour mon application en incluant d'autre package j'ai par exemple besoin de mysql
et je souhaiterais proposer a l'utilisateur de l'installer au besoin
Merci :)
Il te faudra placer les dlls dans les sous-dossiers ou Qt les attends, tu peux voir cela avec Dependancy Walker.
Pour l'installation, regardes du coté de Inno Setup.
Sur Windows, un outils est déjà fourni par Qt afin de récupérer les dépendances nécessaire au déployement, il s'agit de windeployqt.exe.
Voir la doc ici: Qt for Windows - Deployment
Je ne sais pas si un équivalent existe pour Linux.
Sinon il est aussi possible d'utiliser la compilation statique, qui permet de créer un éxecutable indépendant ne nécessitant pas de dlls externes, le désavantage est que l'on passe en licence GPL.
Par contre il faut compiler la librairie Qt en statique et c'est un peu plus compliqué que d'utiliser windeployqt.exe. Néanmoins une fois cela fait il est très facile de créer un exécutable indépendant, ce qui est bien pratique pour une utilisation privé ou en interne.
Explications: Building a static Qt for Windows using MinGW
Bonjour
J'ai effectivement réussi a faire ce que je voulais avec windeployqt.exe. je te remercie
Faut que je trouve le même genre de truc sous linux ^^
Sous Linux, tu peux toujours créer un paquet :
http://alp.developpez.com/tutoriels/.../creer-paquet/
valables pour les bases Debian (Ubuntu, Mint, etc).
Il y a aussi les paquets Snap et le répository Pypi.
Pypi c'est pour python non ?
Pour Linux (ubuntu) j avais lancé une discussion ici
https://www.developpez.net/forums/d1...opie-fichiers/
J y ai expliqué ma solution Et ça fonctionne
Bonne soirée