Compilando .EXEs no Linux (C/C++)

Publicado por - em 17/12/2018

[ Hits: 2.009 ]

 


Compilando .EXEs no Linux (C/C++)



A portabilidade é um dos mais importantes fatores, senão o mais, para um software estar disponível para um maior número de usuários. Linguagens de altíssimo nível, como Python, Perl e Lua, executam seus programas em um interpretador, ou seja, cada instrução de cada software é interpretada por um programa, e esse tal programa quem ordena ao processador e demais componentes do computador que sejam executadas as instruções.

Por essa razão, essas linguagens de programação são altamente portáveis, basta instalar um interpretador em qualquer que seja a máquina, ou sistema operacional, e os programas rodarão com nenhuma ou raríssimas alterações.

No entanto, em linguagens de médio nível, como o C e o C++, não existe interpretador. Cada instrução é convertida em binário pelo compilador, e as ordens ao processador e demais componentes é feita diretamente com o hardware! Isso não é muito portável, pois é como se as diferentes arquiteturas e sistemas operacionais falassem idiomas diferentes, é como se uma máquina específica entendesse o código e a outra não.

No Windows, os arquivos executáveis recebem a extensão ".exe" e possuem instruções bem diferentes de sistemas UNIX, como o Linux, que segue um modelo POSIX. Nesta dica, será ensinado como compilar seus programas C/C++ em ambientes Linux, gerando executáveis feitos para o sistema Microsoft! Assim seu amigo, cliente ou qualquer outra pessoa poderá usufruir dos recursos de seu software sem muitos problemas.

1º PASSO

Abra seu gerenciador de pacotes e procure em seus repositórios pelos seguintes pacotes:
  • g++-mingw-w64 (para compilação C++)
  • gcc-mingw-w64 (para compilação C)

Instale-os.

2º PASSO

O uso do MinGW é praticamente idêntico ao dos GCC/G++.

Execute no terminal o comando, substituindo suas variáveis:

ARQUITETURA-w64-mingw32-COMPILADOR -o programa.exe programa.cpp

Onde:
  • ARQUITETURA pode ser x86_64 ou i686.
  • COMPILADOR pode ser gcc ou g++.

Outras dicas deste autor

Habilitando clique duplo em ícones no KDE

Como remover repositórios PPAs do sistema

Instalando Google Chrome no Manjaro e no Arch

Como fazer o GRUB reconhecer o Windows

Deixando o GIMP parecido com o Photoshop

Leitura recomendada

Função recursiva para inverter um vetor de caracteres

Acessando um valor dada sua posição numa matriz bidimensional

Ocorrência de uma string em outra

Classes para vários tipos (templates)

getch() e getche() não funcionam no ANSI

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts