Como faço o Windows executar executáveis Linux?

4

Eu compilei um programa C ++ no Linux:

make -f mymakefile

Isso gerará um executável, a.out . Parece que este executável não pode ser executado no prompt de comando do Windows.

    
por Terry Qiao 25.09.2018 / 02:39

7 respostas

92

Você não pode executar um programa nativamente para o Linux no Windows. Eles são sistemas operacionais completamente diferentes.

No entanto, existem métodos para você tentar executar o programa:

  1. Recompile o programa no Windows para obter um executável nativo
  2. Instale o Windows Subsystem para Linux e execute o programa nesse ambiente
  3. Instale o Linux em uma máquina virtual e execute o programa nesse ambiente
  4. Instale o Cygwin ou MinGW e recompile e executado nesse ambiente
  5. Use um compilador cruzado

Concedido, dependendo da natureza do programa e de suas dependências, pode não ser possível executar em outro ambiente sem software adicional, modificações no código-fonte ou de qualquer forma.

    
por 25.09.2018 / 02:57
25

Você precisa do subsistema Linux para Windows (WSL) e de uma distribuição Linux. A loja do Windows tem algumas distribuições do Linux pré-empacotadas com o WSL. O Ubuntu é bastante popular, mas como você já tem um sistema Linux no qual você construiu a.out , pode ser mais fácil igualar isso.

Se você não puder corresponder às distribuições do Linux, e a.out não funcionar as-built, também é possível re-executar make em sua distribuição WSL

    
por 25.09.2018 / 11:15
6

A resposta acima cobriu a maioria dos aspectos, mas não tenho certeza se encontrei flinux (às vezes chamado de Linux externo) que acontece ter sido também sugerido aqui e pode ser uma solução mais fácil, dependendo do que você está tentando alcançar.

(Note que eu tenho WSL e trabalho com emuladores e VMs muito, e eu realmente não tenho explorado outras soluções alternativas:))

Foreign LINUX is a dynamic binary translator and a Linux system call interface emulator for the Windows platform. It is capable of running unmodified Linux binaries on Windows without any drivers or modifications to the system. This provides another way of running Linux applications under Windows in constrast to Cygwin and other tools. It now runs a large bunch of console applications and some GUI applications.

    
por 25.09.2018 / 11:14
5

Você pode cruzar a compilação para o Windows no Linux.

Veja link

Isso permite que você use o Linux para compilar um programa executável binário que é executado no Windows.

    
por 25.09.2018 / 12:42
2

Outra opção semelhante à execução de uma máquina virtual, mas não exatamente a mesma, é executar seu aplicativo a partir de um contêiner Docker.

Sim, o Docker para Windows usa uma VM em segundo plano (MobyLinuxVM no HyperV), mas você pode fazer algo assim:

$ docker run a.out

e irá parar o contêiner por conta própria. Ele também usará menos recursos e a saída poderá ser lida a partir de terminais próprios do Windows, como cmd e PowerShell.

Um dockerfile para esta situação será parecido com isto:

FROM docker pull ubuntu:latest

RUN make -f mymakefile

Eu pessoalmente acho que esta é a melhor solução para rodar aplicativos Linux no Windows

    
por 27.09.2018 / 16:09
0

Para este caso em particular, eu mesmo costumava instalar o gcc no meu windows 8 by mingw.

Em seguida, adicionaria o caminho da minha pasta mingw ao caminho do sistema (a partir do painel de controle / sistema / configurações avançadas do sistema).

Então eu poderia rodar o gcc no meu prompt de comando assim como o linux.

    
por 26.09.2018 / 20:25
-7

Tente obter o windows exe ou msi equivalente do executável linux e execute ou use o cygwin para instalar o executável do linux.

Há uma ferramenta mobaxterm muito útil, dê uma olhada e você pode realizar sua tarefa. Esta ferramenta tem cygwin e outro utilitário Linux para prosseguir.

Fonte: link

    
por 25.09.2018 / 11:34

Tags