Pular para o conteúdo

Compilando programas em C

Neste capítulo, vamos aprender a compilar e executar programas com um único arquivo e projetos em C.

No terminal, abra a pasta dev que criamos anteriormente para guardar nossos projetos.

Terminal window
cd ~/dev

Dentro dela, crie um diretório chamado c_cpp_projects e navegue para dentro dele.

Terminal window
mkdir c_cpp_projects
cd c_cpp_projects

Programa

Crie um outro diretório chamado `hello_world e também navegue para dentro nele.

Terminal window
mkdir hello_world
cd hello_world

Crie um arquivo chamado hello_world.c.

Terminal window
touch hello_world.c

Abra o Visual Studio Code neste diretório.

Terminal window
code .

Copie o seguinte código para o arquivo hello_world.c. Lembre-se de salvar o arquivo.

#include <stdio.h>
int main() {
printf("Hello, world!\nThis is my first code in C.\n");
return 0;
}

Você também pode acessar esse programa no repositório do livro.

Vamos utilizar o Clang para compilar o código. O comando de compilação do Clang tem a seguinte estrutura:

Terminal window
clang [opções] <arquivo>.c -include -o <executavel>
  • [opções] são as opções de compilação, como:

    • -o <arquivo> para especificar o arquivo de saída;
    • -include para incluir um arquivo de cabeçalho;
    • -c para compilar sem ligar os arquivos;
    • -g para incluir informações de debug;
    • entre outras.
  • <arquivo>.c é o nome do arquivo que será compilado.

  • <executavel> é o nome do arquivo executável de saída.

Assim, com o terminal aberto na pasta ~/dev/c_cpp_projects/hello_world, execute:

Terminal window
clang hello_world.c -o hello_world

Se tudo ocorrer bem, um arquivo executável será criado. Para Linux e WSL, ele se chamará hello_world. Já para o Windows, ele será hello_world.exe.

Terminal exibindo três comandos executados. O primeiro é "ls" e mostra o arquivo "hello_world.c" dentro da pasta "hello_world". O segundo é o de compilação, que não retorna nenhum texto. O terceiro é "ls" novamente, que agora mostra os arquivos "hello_world.c" e "hello_world".
Compilação do arquivo "hello_world.c".

Para executar o programa, basta chamar o arquivo executável.

Terminal window
./hello_world
Terminal exibindo o comando "./hello_world" e a saída do programa, que é "Hello, world! This is my first code in C.".
Execução do programa "hello_world".

Projeto

Retorne para a pasta c_cpp_projects.

Terminal window
cd ~/dev/c_cpp_projects

Crie um novo diretório chamado separate_function e navegue para dentro dele.

Terminal window
mkdir separate_function
cd separate_function

Crie um arquivo chamado main.c. Então abra o Visual Studio Code no diretório atual.

Terminal window
touch main.c
code .

Copie o seguinte código para o arquivo main.c.

#include <stdio.h>
int sum(int a, int b);
int main() {
int a = 5, b = 7;
int result = sum(a, b);
printf("The sum of %d and %d is %d.\n", a, b, result);
return 0;
}

Crie um outro arquivo chamado functions.c e cole nele o código a seguir.

int sum(int a, int b) {
return a + b;
}

Você também pode acessar esse projeto no repositório do livro.

A função principal main chama a função sum, que está definida em outro arquivo. Então, para fazer a compilação, precisamos passar os dois arquivos para o compilador. Internamente, o compilador fará a compilação de cada arquivo separadamente e, em seguida, fará a ligação entre eles.

Para compilar o projeto, execute o comando abaixo no terminal. Perceba que você também pode colocar opção -o antes dos arquivos de entrada. Ela define o nome do arquivo de saída.

Terminal window
clang main.c functions.c -o separate_function
Terminal exibindo quatro comandos executados. O primeiro é "ls" e mostra os arquivos "functions.c" e "main.c" dentro da pasta "separate_function". O segundo é o de compilação, que não retorna nenhum texto. O terceiro é "ls" novamente, que agora mostra os arquivos "functions.c", "main.c" e "separate_function". O quarto é a execução do programa, que retorna "The sum of 5 and 7 is 12.".
Compilação do projeto "separate_function".