Compilando no Linux: 3 etapas para criar binários 🔥
Resumo da Chave
- A maioria dos softwares segue um processo de 3 etapas para compilar a partir do código-fonte:
./configure && make && make install
. - O roteiro configurar verifica as dependências, fazer gera o executável e ferramentas como autoconf/automake automatizar esse processo.
- A instalação geralmente é opcional, facilitando a execução de comandos copiados em diretórios no
CAMINHO
do sistema.
Compilar a partir do código-fonte pode parecer intimidador em comparação ao uso de gerenciadores de pacotes, mas com três comandos básicos, o processo é simples e direto. 🚀
O que é compilar a partir do código-fonte?
Os programas que você usa podem ser interpretados ou compilados. Programas interpretados são arquivos de texto contendo código que outro programa (o interpretador) executa em tempo real. Programas compilados, por outro lado, são arquivos binários contendo código de máquina pronto para ser executado.
Executáveis compilados são muito comuns, especialmente em programas grandes. Ao compilar a partir do código-fonte, vocêsas um compilador como gcc
para converter o código em um programa executável, geralmente distribuído em vários arquivos.

O processo de compilação pode ser extenso e complexo, por isso geralmente é automatizado com programas como fazer
. Os arquivos arquivos make controlar como o executável final é construído.
Em grandes projetos, estes arquivos make Eles podem ser tão complexos que são gerados automaticamente com ferramentas como autoconf e fabricação de automóveis para garantir compatibilidade entre diferentes arquiteturas. 🛠️
Processo de construção em 3 etapas: configurar, criar, instalar
A maioria dos softwares usa esse padrão básico para compilar a partir do código-fonte:
./configure && make && make install
Programas populares como o Apache usam essa sequência (ou alguma variante), como explica seu arquivo INSTALAR:

O Node.js também segue esta estrutura, conforme indicado em seu arquivo BUILDING.md:

Cada projeto pode ter pequenas variações desta sequência de comandos. Use o operador lógico AND (&&
) interrompe o processo se alguma etapa falhar:
./configure && make && make install
Ou você pode executar cada comando separadamente em uma única linha com um ponto e vírgula, embora isso execute todos os comandos sem parar se algum falhar:
./configurar; fazer; fazer instalar
Você também pode fazer as três linhas separadamente:
./configure fazer fazer instalar
Se você quiser apenas experimentar o programa sem instalá-lo, você pode pular fazer instalar
e executá-lo a partir de sua pasta.
configurar
Pronto, enquanto outros (como o grep) exigem a execução de outro script para gerá-lo. Sempre consulte o arquivo INSTALL, BUILD ou README para seguir as recomendações do projeto. 📋Como ./configure inicia o processo
O roteiro configurar
É o ponto de partida do processo de compilação, adaptando o projeto ao seu ambiente.
Este script verifica as dependências necessárias para o projeto, verificando versões e disponibilidade. Após a conclusão, ele gera um arquivo chamado Makefile
para a próxima fase.
O roteiro configurar
oferece muitas opções configuráveis com ./configure --ajuda
, permitindo que você personalize os detalhes da construção.
configurar
como fazer
gerar muita saída na tela. Use a opção --quieto
se você quiser executar esses comandos sem mostrar tantos detalhes. 🤫Se o script estiver faltando configurar
, alguns projetos incluem um script como autogen.sh
para gerá-lo. Por exemplo, o htop o utiliza:

Projetos muito simples ou projetos escritos em outras línguas podem não ter configurar
. Lá o processo ocorre em duas etapas: faça && faça instalar
.
O roteiro configurar
Ele também controla detalhes da instalação, como o parâmetro --prefixo
, que define o diretório raiz da instalação. Por padrão, é /usr/local
, mas você pode alterá-lo para organizar melhor seus arquivos.
faz a maior parte do trabalho
Depois configurar
gera um Makefile
, a compilação real do software começa com fazer
.
Este programa lê o Makefile
e segue regras para decidir quais arquivos criar ou atualizar. O Makefiles
manuscritos são fáceis de entender para aqueles que conhecem a sintaxe.
Por exemplo, este aqui Makefile
simple compila um programa que depende do arquivo programa.c
:
programa: programa.c gcc -o programa programa.c
fazer
verifique se programa.c
mudou desde a última compilação. Se não mudou, não faça nada; se mudou, compile com gcc
.

O arquivos make
gerados automaticamente são geralmente muito mais complexos. Por exemplo, o makefile
htop tem 2.440 linhas:

Mas você não precisa entender todos os detalhes. A menos que você modifique o código-fonte, basta executá-lo. fazer
e deixe o sistema cuidar disso.
O passo fazer
Pode levar minutos ou mais para projetos grandes. Se falhar, geralmente é devido à falta de dependências. A vantagem é que fazer
salva o progresso e continua de onde parou quando você corre novamente.
Finalizando com make install
Após a compilação, o executável criado geralmente fica localizado na raiz do projeto ou em um subdiretório chamado lixeira
. Você pode executá-lo usando o caminho completo:

Isso é útil para testes, mas a longo prazo você vai querer instalá-lo em um local acessível.
O objetivo instalar
que define o makefile
Copie os arquivos necessários e defina as permissões. O local padrão é /usr/local/bin
, embora você possa alterá-lo com --prefixo
.
Se você não tiver permissões para essa pasta, execute sudo make install
e fornece a senha do administrador.
O diretório de instalação deve ser incluído na sua variável CAMINHO
para poder executar o programa apenas com seu nome, sem especificar o caminho completo.