Compilar e ligar as aplicações com makefiles

Quando você cria um aplicativo, você escrever seu código em vários arquivos de código fonte. Por um aplicativo, você pode ter muitos arquivos de código-fonte diferentes. Alguns grandes projetos corporativos podem ter centenas (ou milhares) de arquivos de código fonte com dezenas de programadores que trabalham em diferentes arquivos.

Video: Programming in the C language - [#3] Makefiles and Compiling

Como você pode imaginar, dezenas de programadores de temperamento forte trabalhando juntos faz para bastante UMA AVENTURA mas usando ferramentas como faço, esses programadores são capazes de trabalhar facilmente em conjunto.

Para transformar estes arquivos de código fonte em um único aplicativo, você precisa compilar e vinculá-los.

Video: How to Create a Simple Makefile - Introduction to Makefiles

Compilando significa transformar o seu código C ++ (ou qualquer linguagem que você está usando) em uma linguagem legível por máquina chamado Assembler. A linguagem Assembler difere entre os tipos de processadores. A maioria dos que estão lendo este livro, provavelmente, estão trabalhando em uma versão de um processador AMD ou Intel, de modo que os compiladores C ++ que você usa normalmente traduzir suas aplicações em código assembler (também chamado de código de máquina) que é apropriado para o processador no seu sistema.

Você também pode dizer ao compilador para atingir algum outro processador em muitos casos. O compilador enche todo este código assembler em um arquivo chamado arquivo objeto e tipicamente nomes do arquivo o mesmo que o arquivo de código fonte original, mas com uma .obj ou .o extensão. Para cada arquivo de código fonte, o compilador faz um único arquivo objeto.

Depois de ter compilado todos os seus arquivos de código fonte, você corre o vinculador. o vinculador leva os arquivos objeto e as combina em um único arquivo que você pode executar em seu computador. Este único arquivo geralmente recebe uma .exe extensão, que significa executable.



A origem deste termo vem execução, que se refere à execução de um aplicativo e provavelmente tinha algo a ver com o que o usuário da primeira aplicação informática queria fazer para o programador depois de usar o aplicativo.

Video: C and Makefiles

O vinculador pode produzir outros tipos de arquivos de saída. Por exemplo, você pode criar um .lib (Biblioteca) ou .dll (Dynamic Link Library, ou DLL) arquivo. Esses arquivos contêm código executável, assim como o arquivo .exe faz, mas você não executá-los como arquivos autônomos - um .exe arquivo normalmente carrega-los e usa o código executável que eles contêm.

O compilador também insere no objeto arquivos uma grande quantidade de informações, além do código assembler. Por exemplo, quando você ainda está no processo de desenvolvimento de seu aplicativo, você pode instruir o compilador para colocar informações de depuração no arquivo. (Embora, por vezes, as informações de depuração vai em um file- separado que depende do compilador.)

informações de depuração inclui os nomes de suas variáveis ​​e os números de linha do código-fonte. Quando você usa uma ferramenta de depuração, essa ferramenta sabe sobre o seu código de olhar para as informações de depuração.

O compilador também coloca informações sobre o código, como os nomes dos itens que ocorrem em outros arquivos de código fonte. Por exemplo, se você estiver escrevendo código que chama o código em outro arquivo de código fonte, o compilador inclui o nome desse código no arquivo objeto. Dessa forma, o ligador pode conectar os dois.

Finalmente, um compilador pode adicionar recursos para os arquivos objeto, tais como gráficos e sons que seu aplicativo requer. Esses recursos aparecem como dados que o aplicativo acessa mais tarde. Dados aparecem em áreas separadas de código executável dentro do arquivo, mas você não precisa se preocupar com a organização do arquivo objeto - o compilador cuida do gerenciamento de código e dados para você.


Publicações relacionadas