Por algum motivo estranho, make
continuou me dando erros de tabulação ao compilar no Windows, então tentei no Ubuntu e funcionou muito bem.
Agora gostaria de usar o executável que obtive ao compilar no Ubuntu e usá-lo no Windows. No entanto, o tipo de arquivo que recebo é diferente quando faço o download no Windows, pois é apenas do tipo file
. É possível executá-lo no Windows, já que foi compilado no Ubuntu?
A cadeia de ferramentas do compilador padrão no Ubuntu produzirá executáveis do Linux, não executáveis do Windows. É possível instalar um compilador cruzado que produzirá executáveis do Windows - esta pergunta e respostas do Stack Overflow fornecem algumas dicas sobre como instalar e executar um.
Isso é chamado de compilação cruzada . Você precisa de um "toolchain" (compilador, linker, etc.) que irá gerar o código e formato apropriados, envolvendo:
A arquitetura do processador de destino. No seu caso, é provavelmente o mesmo (x86 ou amd64), mas às vezes você faz compilação cruzada para um processador diferente, por exemplo, quando cria um executável para um processador ARM em seu PC.
A ABI de destino (essas são as convenções de chamada usadas).
O formato certo
As bibliotecas certas, incluindo bibliotecas do sistema.
Dependendo do projeto, isso pode ser muito fácil (apenas um sinalizador ou uma variável de ambiente para definir em algum lugar) ou muito difícil.
Você encontrará algumas dicas aqui , aqui ou aqui .
Faça com que os scripts de compilação que funcionam no Linux normalmente não funcionem no Windows.
Você pode tentar compilar seu arquivo .c sem o subsistema Make (use diretamente o Visual Studio ou outro compilador C)
Você pode usar o Cygwin para compilar e executar o aplicativo se esse aplicativo depender de chamadas POSIX.
Você pode tentar encontrar o script de compilação específico do Windows para o aplicativo: isso normalmente está em uma pasta diferente ou em um download totalmente diferente.