-
Apenas sob circunstâncias muito controladas: Ambos os computadores devem ter um processador e sistema operacional compatíveis.
-
Não é um processador específico, mas um conjunto de processadores compatíveis. Por exemplo. Um arquivo compilado para compatibilidade com x86 e sem extensões funcionará em todos os processadores Intel ou AMD x86 ou x64, assumindo que o sistema operacional seja compatível.
-
Em primeiro lugar, o código da máquina a partir da etapa de compilação. Para além disso, algumas outras "secções" terão, e. recursos (já se perguntou, porque um executável tem um ícone dedicado no Windows, mesmo que não esteja em execução, mas apenas mostrado no explorer), a descrição da compatibilidade binária e muito mais.
-
Este é um efeito colateral de 1 .: sempre que o sistema operacional fornece compatibilidade com o formato executável, ele pode ser iniciado. As versões modernas do Windows fornecem uma variedade de compatibilidade: DOS, Win16, Win32, Win64, dotnet são os mais importantes.
-
O SO fornece ao executável um ambiente indispensável para a execução. Esses ambientes são muito diferentes entre o Linux e o Windows. Isso significa que você não pode executar diretamente executáveis de um no outro. Existem projetos em andamento para colmatar esta lacuna: O projeto WINE tem como objetivo permitir o lançamento de executáveis do Windows no Linux (e outros sistemas operacionais), enquanto o projeto Cygwin visa tornar possível rodar o software Linux no Windows. O Cygwin não aponta para compatibilidade binária, mas para permitir a recompilação de uma fonte não modificada.
É importante entender que o executável (por exemplo, o .exe) é não o resultado do processo de compilação - é o resultado do processo linking , que combina a saída da compilação com os outros ingredientes necessários para criar o que eu descrevi em 3.