Compilé un programa C ++ en Linux:
make -f mymakefile
Esto generará un archivo ejecutable, a.out. Parece que este ejecutable no se puede ejecutar en el símbolo del sistema de Windows.
Compilé un programa C ++ en Linux:
make -f mymakefile
Esto generará un archivo ejecutable, a.out. Parece que este ejecutable no se puede ejecutar en el símbolo del sistema de Windows.
Respuestas:
No puede ejecutar de forma nativa un programa para Linux en Windows. Son sistemas operativos completamente diferentes.
Sin embargo, hay métodos que puede intentar para ejecutar el programa:
Por supuesto, dependiendo de la naturaleza del programa y sus dependencias, es posible que no se pueda ejecutar en otro entorno sin software adicional, modificaciones al código fuente , o en absoluto.
Necesita el subsistema Linux para Windows (WSL) y una distribución Linux. La tienda de Windows tiene algunas distribuciones de Linux preempaquetadas con WSL. Ubuntu es bastante popular, pero como ya tienes un sistema Linux en el que construiste a.out, podría ser más fácil igualarlo.
Si no puede hacer coincidir las distribuciones de Linux y a.outno funciona como está construido, también es posible volver a ejecutar makesu distribución WSL
La respuesta anterior cubrió la mayoría de los aspectos, pero no estoy seguro de haber encontrado flinux (a veces llamado linux foráneo) que también se sugirió aquí y puede ser una solución más fácil dependiendo de lo que intente lograr.
(Tenga en cuenta que tengo WSL y trabajo mucho con emuladores y máquinas virtuales, y realmente no he explorado otras soluciones :))
Foreign LINUX es un traductor binario dinámico y un emulador de interfaz de llamada del sistema Linux para la plataforma Windows. Es capaz de ejecutar binarios de Linux no modificados en Windows sin ningún controlador o modificación en el sistema. Esto proporciona otra forma de ejecutar aplicaciones Linux bajo Windows en contraposición a Cygwin y otras herramientas. Ahora ejecuta una gran cantidad de aplicaciones de consola y algunas aplicaciones GUI.
Puede realizar una compilación cruzada para Windows en Linux.
Ver https://stackoverflow.com/questions/2033997/how-to-compile-for-windows-on-linux-with-gcc-g
Esto le permite usar Linux para compilar un programa ejecutable binario que se ejecuta en Windows.
Otra opción que es similar a ejecutar una máquina virtual, pero no exactamente la misma es ejecutar su aplicación desde un contenedor Docker.
Sí, Docker para Windows usa una VM en segundo plano (MobyLinuxVM en HyperV), pero puede hacer algo como esto:
$ docker run a.out
y detendrá el contenedor por sí solo. También usará menos recursos y la salida se puede leer desde los terminales de Windows como cmd y PowerShell.
Un dockerfile para esta situación se verá así:
FROM docker pull ubuntu:latest
RUN make -f mymakefile
Personalmente, creo que esta es la mejor solución para ejecutar aplicaciones de Linux en Windows
Para este caso en particular, yo mismo solía instalar gcc en mi Windows 8 por mingw.
Luego agregaría la ruta de mi carpeta mingw a la ruta del sistema (desde el panel de control / sistema / configuración avanzada del sistema).
Entonces podría ejecutar gcc en mi símbolo del sistema al igual que Linux.
Intente obtener el equivalente de Windows Exe o MSI del ejecutable de Linux y ejecute o use cygwin para instalar el ejecutable de Linux.
Hay una herramienta mobaxterm muy útil, eche un vistazo y podrá realizar su tarea. Esta herramienta tiene cygwin y otras utilidades de Linux para continuar.
Fuente: https://www.quora.com/How-do-I-run-Linux-executable-on-windows