Compilando e Executando Programas

Last updated: January 29th, 2019

O que faz a compilação de um programa?

Neste curso você fará programas em C, que é uma linguagem de programação compilada. Isso significa que seus programas só poderão ser executados pelo computador após serem compilados.

O processo de compilação do programa é feito pelo compilador, em que este pega seu arquivo de código C, adiciona as bibliotecas que você incluir no programa, e transforma tudo isso em código assembly, e manda o montador transformar isso em código de máquina, que é a linguagem que o processador é capaz de executar.

Ou seja, de maneira simples, compilar um programa é "traduzi-lo" para uma linguagem que o computador possa entender e executar.

Como compilar um programa?

Para compilar um programa que você fez, seu computador precisará de um compilador C. Caso você não tenha um, veja a seção de compiladores nas Ferramentas Necessárias.

Se você não tiver certeza que possui um compilador instalado pode testar isso abrindo um terminal na sua máquina e executando gcc --version.

No caso do Mac talvez seja clang --version

Agora que você sabe que possui o compilador, compilar um programa é muito fácil. Mostraremos o comando primeiro e depois analisaremos cada parte dele.

Para compilar um programa, abra uma janela do terminal na mesma pasta que se encontra seu arquivo .c (caso não saiba fazer isso veja Comandos Básicos do Terminal). Depois, basta executar o comando abaixo, trocando nome_do_programa.c pelo nome do seu programa e nome_do_executavel pelo nome que você quer que o arquivo executável tenha.

gcc -ansi -Wall nome_do_programa.c -o nome_do_executavel

Desvendando o comando de compilação

  • gcc

    Esta é a chamada do programa de compilação. Use o nome do seu compilador, isto é, se estiver utilizando clang, talvez você tenha que trocar gcc por clang.

    Esta é sempre a primeira parte do comando de compilação. As seguintes podem estar em outra ordem.

  • -ansi

    Esta é uma flag de compilação. Existem inúmeras flags, mas utilizaremos só algumas poucas. Esta, em particular, indica ao compilador qual versão da linguagem C utilizar para a compilação deste programa.

    Algumas das versões de C são: ANSI (flag -ansi), C11 (flag -c11), e C99 (flag -c99).

  • -Wall

    Outra flag de compilação. As flags que começam com W são para que o compilador mostre os warnings da compilação, e não apenas os erros.

    Warnings são partes do programa que não causam erro de compilação, mas que podem causar erros em determinadas circunstâncias. É recomendado que você utilize esta flag.

    -Wall mostrará todos os warnings. Outras flags que começam com W mostram apenas erros específicos.

  • nome_do_programa.c

    Este deve ser o nome do seu programa em C. É importante que ele esteja no mesmo diretório que o terminal que você estiver usando.

    Para compilar programas que não estão no mesmo diretório que o terminal, você pode indicar a path completa do arquivo .c

  • -o nome_do_executavel

    Esta é outra flag, que possui 2 partes: 1. a flag em si, -o; 2. O nome do arquivo que será criado pelo compilador. O nome do arquivo deve estar logo depois da flag -o obrigatoriamente.

    Caso você não use esta flag, o arquivo de saída ficará com o nome default, provavelmente "a.out" ou "a.exe". Recomendamos que você use a flag -o para não se confundir sobre qual arquivo está executando, principalmente se estiver trabalhando com múltiplos arquivos.

Como Executar um Programa?

Depois que você compilou seu programa, executá-lo é muito fácil. Basta abrir uma janela do terminal no mesmo diretório que o executável e seguir os comandos abaixo, dependendo do seu sistema operacional:

  • UNIX (Linux, Mac, Bash for Windows)

    ./nome_do_executavel

  • CMD (terminal Windows)

    nome_do_executavel