J'ai compilé un programme C++ sous Linux:
make -f mymakefile
Cela générera un exécutable, a.out
. Il semble que cet exécutable ne puisse pas être exécuté dans l'invite de commande Windows.
Vous ne pouvez pas exécuter nativement un programme pour Linux sous Windows. Ce sont des systèmes d'exploitation complètement différents.
Cependant, il existe des méthodes que vous pouvez essayer pour exécuter le programme:
Accordé, en fonction de la nature du programme et de ses dépendances, il pourrait ne pas être possible de s'exécuter dans un autre environnement sans logiciel supplémentaire, sans modification du code source , ni même du tout.
Vous avez besoin du sous-système Linux pour Windows (WSL) et d'une distribution Linux. Le Windows Store contient quelques distributions Linux préemballées avec WSL. Ubuntu est assez populaire, mais comme vous avez déjà un système Linux sur lequel vous avez construit a.out
, il serait peut-être plus simple de faire correspondre cela.
Si vous ne pouvez pas faire correspondre les distributions Linux et que a.out
ne fonctionne pas tel quel, il est également possible de réexécuter make
sur votre distribution WSL.
La réponse ci-dessus couvrait la plupart des aspects, mais je ne savais pas si nous avions rencontré flinux (parfois appelé linux étranger), ce qui s'avère être également suggéré ici et pourrait constituer une solution de contournement plus facile en fonction de ce que vous êtes en essayant d'atteindre.
(Notez que j'ai WSL et que je travaille beaucoup avec des émulateurs et des machines virtuelles et que je n'ai pas vraiment d'explorateur d'autres solutions de contournement :))
LINUX étranger est un traducteur binaire dynamique et un émulateur d’interface d’appel système Linux pour la plate-forme Windows. Il est capable d'exécuter des fichiers binaires Linux non modifiés sous Windows sans aucun pilote ou modification du système. Cela fournit un autre moyen d'exécuter des applications Linux sous Windows par rapport à Cygwin et à d'autres outils. Il exécute maintenant un grand nombre d'applications de console et certaines applications à interface graphique.
Vous pouvez effectuer une compilation croisée pour Windows sous Linux.
Voir https://stackoverflow.com/questions/2033997/how-to-compile-for-windows-on-linux-with-gcc-g
Cela vous permet d'utiliser Linux pour compiler un programme exécutable binaire exécuté sous Windows.
Une autre option similaire à l’exécution d’une machine virtuelle, mais pas exactement la même chose, consiste à exécuter votre application à partir d’un conteneur Docker.
Oui, Docker pour Windows utilise un VM en arrière-plan (MobyLinuxVM sur HyperV), mais vous pouvez procéder de la manière suivante:
$ docker run a.out
et arrêtera le conteneur tout seul. Il utilisera également moins de ressources et la sortie peut être lue à partir de terminaux Windows tels que cmd et PowerShell.
Un fichier docker pour cette situation ressemblera à ceci:
FROM docker pull ubuntu:latest
RUN make -f mymakefile
Je pense personnellement que c'est la meilleure solution pour exécuter des applications Linux sous Windows
Pour ce cas particulier, j’ai moi-même déjà installé gcc sur mes fenêtres 8 avec mingw.
Ensuite, j’ajouterais le chemin de mon dossier mingw au chemin du système (à partir du panneau de configuration/système/paramètres système avancés).
Ensuite, je pourrais lancer gcc sur ma commande Invite, exactement comme Linux.