> For the complete documentation index, see [llms.txt](https://mentebinaria.gitbook.io/manual-da-linguagem-gnu-c/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mentebinaria.gitbook.io/manual-da-linguagem-gnu-c/2.-um-programa-completo/compilando-o-programa-de-exemplo.md).

# Compilando o Programa de Exemplo

Rodar um programa em C requer converter seu código-fonte num *arquivo executável*. Isto é chamado de compilar o programa, e o comando para fazer isso usando GNU C é o `gcc`.

O programa de exemplo consiste num único arquivo de código-fonte. Se o chamarmos de `fib1.c`, o comando completo para compilá-lo será:

```
gcc -g -O -o fib1 fib1.c
```

No comando acima, `-g` instrui que sejam geradas informações de depuração, `-O` diz para otimizar em nível básico e `-o fib1` diz para criar o programa executável num arquivo `fib1`.

Para rodar o programa, use o nome do arquivo como um comando do shell. Por exemplo,

```
./fib1
```

Todavia, a menos que você tenha certeza de que o programa está correto, você deve esperar que precise depurá-lo. Portanto, use o comando

```
gdb fib1
```

que inicia o debugger (ou depurador) GDB (veja [A Sample GDB Session](https://sourceware.org/gdb/current/onlinedocs/gdb/Sample-Session.html#Sample-Session) em *Debugging with GDB*) e você pode rodar e depurar o programa executável `fib1`.

Um conselho do Richard Stallman, a partir da sua experiência pessoal, é ir para o debugger assim que você conseguir reproduzir o problema. Não tente evitar isso usando outros métodos—ocasionalmente eles funcionam como atalhos, mas normalmente eles levam muito tempo. Com o debugger você certamente vai encontrar o problema num tempo razoável; em geral, você terminará seu trabalho mais rapidamente. Quanto mais cedo você levar a sério e iniciar o debugger, mais cedo provavelmente encontrará o problema.

Veja Compilação[^1] para uma introdução sobre compilação de programais mais complexos que consistem em mais de um arquivo de código-fonte.

{% embed url="<https://www.youtube.com/watch?v=dO8McxvBMBA>" %}

[^1]: Capítulo pendente de tradução


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://mentebinaria.gitbook.io/manual-da-linguagem-gnu-c/2.-um-programa-completo/compilando-o-programa-de-exemplo.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
