Programar em C++/Compilação: diferenças entre revisões
[edição verificada] | [edição verificada] |
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição |
|||
Linha 2:
Compilação é o processo de "tradução" do programa escrito em uma linguagem de programação para um formato no qual o computador entenda. A compilação gera um ficheiro - arquivo em português brasileiro - binário (executável) a partir do código fonte.
== A tradução do código para o computador ==
Em C e C++ são 3 os programas usados para fazer a tradução do código fonte (que são as linhas de código que o programador escreve) num ficheiro executável, que o computador pode executar:
#
#
#
== Pré-processador ==
Este é um programa que busca no código fonte – no código que escrevemos – por
No exemplo tínhamos
#include <iostream>
Então o pré-processador inclui ficheiros localizados no ficheiro ''iostream''. Então tínhamos o código fonte que depois é transformado num outro código fonte de acordo com as diretivas pré-processadas.
Linha 27 ⟶ 26:
== Compilador ==
Compilador é um programa que pega código fonte preprocessado e o traduz em instruções de linguagem de máquina, linguagem que o computador entende. Estas são guardadas num
▲Compilador é um programa que pega código fonte preprocessado e o traduz em instruções de linguagem de máquina, linguagem que o computador entende. Estas são guardadas num ficheiro á parte, chamado de object file e tem a extensão .o ou .obj dependendo do compilador.
== Linker ==
Apesar do nosso "object file" ter as instruções em linguagem máquina, o computador ainda não poder correr como um programa. A razão é que é necessário outro código da biblioteca, que é o código do run-time library, que é para as operações comuns tipo a tradução o input do teclado ou a capacidade para interagir com hardware externo tipo o monitor para apresentar uma mensagem. Estas bibliotecas run-time costumam já estar instaladas com o sistema operativo, caso isso não aconteça teremos de fazer o
Então o resultado da combinação do "object file" com as partes necessárias da biblioteca run-time fazem finalmente a criação de um ficheiro executável com a extensão .exe▼
▲Apesar do nosso object file ter as instruções em linguagem máquina, o computador ainda não poder correr como um programa. A razão é que é necessário outro código da biblioteca, que é o código do run-time library, que é para as operações comuns tipo a tradução o input do teclado ou a capacidade para interagir com hardware externo tipo o monitor para apresentar uma mensagem. Estas bibliotecas run-time costumam já estar instaladas com o sistema operativo, caso isso não aconteça teremos de fazer o dowload delas.
▲Então o resultado da combinação do object file com as partes necessárias da biblioteca run-time fazem finalmente a criação de um ficheiro executável com a extensão .exe
== Processo de compilação ==
Em primeiro lugar, vamos escrever um código que está na linguagem C++ e vamos gravar esse código todo num ficheiro, que é uma quantidade de memória no computador. Esse ficheiro fica com a terminação “.CPP” ou .CP ou C.. Chama-se a este conjunto de linhas que escrevemos de, código fonte ou source code (pode ter a terminação “.c”, “.cpp”, e “.cc” - estas extensões dependem do compilador que se utiliza). Esse
▲Em primeiro lugar, vamos escrever um código que está na linguagem C++ e vamos gravar esse código todo num ficheiro, que é uma quantidade de memória no computador. Esse ficheiro fica com a terminação “.CPP” ou .CP ou C.. Chama-se a este conjunto de linhas que escrevemos de, código fonte ou source code (pode ter a terminação “.c”, “.cpp”, e “.cc” - estas extensões dependem do compilador que se utiliza). Esse souce code é de alguma forma críptica e para alguém que não saiba de c++ no entanto é aquilo que neste momento chamamos de humam readable form.
Para tornar o nosso source code num programa usamos um compiler que irá produzir um object file. Este ficheiro tem normalmente a extensão. OBJ
porém ainda não temos um programa executável. Para isso vamos utilizar o linker.
Uma das vantagens do c++ é que usufrui de uma estrutura multi-file. A linguagem permite compilação separada, onde partes do programa total podem estar numa ou mais source files e estes podem ser compilados independentemente de cada um. A ideia é que o processo de compilação produz files que depois podem ser linked together usando um editor de link ou
Os programas feitos em c++ são tipicamente ficheiros .OBJ ligados uns aos outros com uma ou mais libraries. Estas são uma
Depois de se fazer este linking é que obtemos
Os compiladores
{{AutoCat}}
|