Introdução
Quando um programa é compilado a partir do código fonte C ou C ++, um compilador como gcc
(veja abaixo) traduz esse código para a linguagem binária nativa da CPU, para que o programa possa ser executado. Assim, material humano legível (código fonte) é transformado em um formato legível não humano (código binário legível por máquina).
Binários e o sistema de arquivos
Se você inserir echo $PATH
, verá os locais de todos os executáveis no sistema, tanto os binários e scripts compilados:
/home/mike/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Na hierarquia do sistema de arquivos, as principais ferramentas do sistema, como cat
e getty
, estão presentes em /bin
e /sbin
respectivamente, e outras ferramentas, como dpkg
e chroot
, estão presentes em /usr/bin
e /usr/sbin
, respectivamente. Se você compilar um programa fazendo o download do código-fonte, configurando-o e instalando-o, seu programa, por padrão, deverá entrar em /usr/local/bin
e seus outros arquivos na /usr/local
hierarquia.
Compiladores
Provavelmente, uma das ferramentas mais conhecidas usadas para compilar binários é gcc
, que é conhecida como a Coleção GNU Compiler e anterior como o compilador GNU C; a versão fornecida com o Ubuntu 12.04 é gcc 4.6.3
. Conforme consta no manual do GNU oficial,
GCC is an integrated distribution of compilers for several major programming
languages. These languages currently include C, C++, Objective-C, Objective-C++,
Java, Fortran, Ada, and Go.
Compilando um binário
Os três comandos ./configure
, make
e sudo make install
(ou sudo checkinstall
) são frequentemente usados juntos para compilar um programa.
A execução de ./configure
, entre outras coisas, verifica a versão de gcc
instalada e prepara o ambiente de criação. O makefile
é uma das coisas mais importantes geradas a partir da execução de ./configure
, pois direciona a compilação quando make
é executado. O manual do GNU detalha o processo em grande profundidade. Em suma, as regras no makefile
determinam o objetivo principal (para criar um executável) para que o código fonte .c
files seja convertido em arquivos compilados ( .o
files) para gerar o arquivo executável de destino.
Recursos
Dois ótimos recursos são os guias de compilação do Ubuntu aqui e aqui , que contém ótimos conselhos e informações para aqueles que estão começando a compilar. Outros recursos, como o manual GNU gcc
e o manual make
que já mencionei. Para obter mais informações sobre C e criar um programa C simples e pequeno, consulte o capítulo 22 de Rute e o capítulo 24 da Linha de Comando do Linux .