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 .