Instalação • Capítulo 2

Configuração


capttop

Gato • Instale por sua conta própria e risco.

Antes de começar a programar em C precisaremos instalar algumas coisas, e configurar nosso ambiente para que tenhamos tudo que precisamos. Como C é uma linguagem tão universal, com sorte isso será razoavelmente simples. Precisamos instalar duas coisas principais: um editor de texto e um compilador.

Editor de texto


Um editor de texto é um programa que permite você editar arquivos de texto de maneira adequada à programação.

No Linux o editor de texto que recomendo é o gedit. Qualquer outro editor de texto básico que vem instalado com sua distribuição também vai funcionar bem. Se você é um usuário de Vim ou Emacs, eles vão funcionar bem também. Por favor não use uma IDE. Não é necessário para um projeto tão pequeno e não vai ajudá-lo a entender o que se passa.

No Mac um editor de texto simples que pode ser usado é o TextWrangler. Se você tem uma preferência diferente, tudo bem, mas por favor não use XCode para editar texto. Este é um projeto pequeno e usar uma IDE não vai ajudá-lo a entender o que se passa.

No Windows, meu editor de texto preferido é o Notepad++. Se você tem outra preferência, tudo bem. Por favor não use o Visual Studio pois ele não tem suporte adequado para programação em C. Se você tentar usá-lo vai enfrentar muitos problemas.

Compilador


O compilador é um programa que transforma o código fonte C em um programa que seu computador pode rodar. O processo de instalação para ele é diferente dependendo de qual sistema operacional você está usando.

Compilar e rodar programas em C também requer algum conhecimento básico da linha de comando. Isto eu não vou cobrir, então vou assumir que você tem pelo menos alguma familiaridade em usar a linha de comando. Se isto preocupa você um pouco, então procure por tutoriais online em como usá-la, relevantes ao seu sistema operacional.

No Linux você pode instalar um compilador baixando alguns pacotes. Se você estiver rodando Ubuntu ou Debian, pode instalar tudo que precisa com o seguinte comando: sudo apt-get install build-essential. Caso esteja rodando Fedora ou alguma variante Linux parecida, pode usar o comando: su -c "yum groupinstall development-tools".

No Mac, você pode instalar um compilador baixando e instalando a última versão do XCode da Apple. Se você não tem certeza como fazer isso, pode buscar online por "instalar xcode" e siga o conselho mostrado. A seguir, você vai precisar instalar as Command Line Tools. No Mac OS X 10.9 isso pode ser feito rodando: xcode-select --install na linha de comando. Em versão anteriores ao 10.9 isso pode ser feito indo em XCode Preferences, Downloads, e selecionando Command Line Tools para instalação.

No Windows você pode instalar um compilador baixando e instalando MinGW. Caso use o instalador, em algum momento ele vai apresentar uma lista de possíveis pacotes. Certifique-se de marcar pelo menos mingw32-base e msys-base. Uma vez instalado, você precisa adicionar o compilador e outros programas na variável de sistema PATH. Para fazer isso, siga as instruções aqui (em inglês) adicionando o valor ;C:\MinGW\bin à variável chamada PATH. Você pode criar esta variável caso ela não exista. Você talvez tenha que reiniciar cmd.exe para as mudanças fazerem efeito. Isto vai permitir que você rode um compilador da linha de comando cmd.exe. Vai também instalar outros programas que fazem cmd.exe se comportar como uma linha de comando Unix.

Testando o Compilador

Para testar se o seu compilador C está instalado corretamente, digite o seguinte na linha de comando.

cc --version

Se você receber uma informação sobre a versão do compilador, então ele deve estar instalado corretamente. Você está pronto! Se você receber qualquer tipo de mensagem de erro sobre um comando não reconhecido ou não encontrado, então ainda não está pronto. Você talvez tenha que reiniciar a linha de comando ou seu computador para as mudanças fazerem efeito.

Hello World


Agora que seu ambiente está configurado, comece por abrir o seu editor de texto e digitando o seguinte programa. Crie um diretório onde você vai colocar seu trabalho para este livro e salvar o arquivo como hello_world.c. Este é o seu primeiro programa C!

#include <stdio.h>

int main(int argc, char** argv) {
  puts("Hello, world!");
  return 0;
}

Inicialmente isso pode não fazer sentido nenhum. Tentarei explicar passo a passo.

Na primeira linha nós incluímos (include) o que é chamado de um cabeçalho (header). Este comando nos permite usar as função da stdio.h, a biblioteca de entrada e saída padrão (standard input and output) que vem incluída em C. Uma das funções dessa biblioteca é a função puts que você vê a seguir no programa.

A seguir nós declaramos uma função chamada main. Esta função é declarada como tendo por saída um int, e recebe como entrada um int chamado argc e um char** chamado argv. Todos os programas C precisam conter essa função. Todos os programas começam a rodar a partir dessa função.

Dentro da main, a função puts é chamada com o argumento "Hello, world!". Isso joga a mensagem Hello, world! na saída da linha de comando. A função puts é abreviação para put string. O segundo comando dentro da função é return 0;. Isto diz a função main para terminar e devolver 0. Quando um programa C devolve 0 isso indica que não houveram erros rodando o programa.

Compilação


Antes de rodar este programa precisamos compilá-lo. Isto irá produzir o executável que poderemos efetivamente rodar no nosso computador. Abra a linha de comando e navegue até o diretório em que o arquivo hello_world.c está salvo. Você pode compilar o seu programa usando o seguinte comando.

cc -std=c99 -Wall hello_world.c -o hello_world

Isso vai compilar o código em hello_world.c, reportando quaisquer alertas (warnings), e produz o programa em um novo arquivo chamado hello_world. Nós usamos a opção -std=c99 para dizer ao compilador qual versão ou padrão (standard) de C nós estamos usando para programar. Isso permite ao compilador garantir que nosso código esteja padronizado, de maneira que pessoas com sistemas operacionais diferentes serão capaz de usar nosso código.

Caso funcionou, você verá o arquivo produzido no diretório atual. Ele pode ser rodado digitando ./hello_world (ou apenas hello_world no Windows). Se tudo estiver correto, você deve ser uma mensagem amigável Hello, world! aparecer.

Parabéns! Você acabou de compilar e rodar seu primeiro programa C.

Erros


Se houver alguns problemas com seu programa C o processo de compilação pode falhar. Estas questões podem variar de simples erros de sintaxe até outros problemas complicados que são difíceis de entender.

Às vezes a mensagem de erro do compilador fará sentido, mas se você está tendo dificuldade de entendê-la, experimente buscar ela online. Você deverá tentar achar uma explicação concisa para o que ela significa, e descobrir como corrigir. Lembre disso: há muitas pessoas que tiveram o mesmo problema antes de você.

smash

Raiva • Uma técnica pobre de depuração

Às vezes haverão muitos erros de compilação decorrentes do mesmo código fonte. Sempre passe pelos erros de compilação desde o primeiro até o último. Isso pode ser uma arte bem além do escopo deste livro.

Às vezes o compilador compilará um programa, mas quando você roda, ele falha. Depurar programas C nesta situação é difícil. Também pode ser uma arte bem além do escopo deste livro.

Caso seja um iniciante, a primeira parada para depurar um programa C falhando seria imprimir (isto é, jogar na saída) bastante informação à medida que o programa roda. Usando este método você deve tentar isolar exatamente qual parte do código está incorreta e o que, se for o caso, está dando errado. Essa é uma técnica de depuração que é ativa. Isso é uma coisa importante. Desde que você esteja fazendo alguma coisa, e não apenas encarando o código, o processo é menos doloroso e a tentação de desistir é reduzida.

Para pessoas se sentindo mais confiantes um programa chamado gdb pode ser usado para debugar seu programa. Isso pode ser difícil e complicado de usar, mas é também bem poderoso, pode lhe dar informação extremamente valiosa, o que aconteceu errado e onde. Informações em como usar o gdb podem ser encontradas online (em inglês).

No Mac, as versões mais recentes do OS X não vêm com gdb. No lugar dele, você pode usar o lldb que faz praticamente a mesma tarefa.

No Linux ou Mac, o valgrind pode ser usado para ajudar a depurar vazamento de memória (memory leaks) e outros erros desagradáveis. Valgrind é uma ferramenta que pode salvar horas, ou mesmo dias, de depuração. Não leva muito tempo para ficar proficiente nele, então investigá-lo é altamente recomendado. Informação em como usá-lo pode ser encontrada online (em inglês).

Documentação


Ao longo deste livro você pode topar com uma função em algum código de exemplo que você não reconheça, e ficar imaginando o que será que ela faz. Neste caso você você pode olhar na documentação online (em inglês) da biblioteca padrão. A documentação vai explicar todas as funções incluídas na biblioteca padrão, o que elas fazem, e como usá-las.

Referência


Para que serve esta seção?

Nesta seção eu vincularei o código que eu escrevi para cada capítulo do livro. Ao terminar um capítulo seu código provavelmente se parecerá com o meu. Este código pode ser usado como referência caso a explicação não tenha sido clara.

Caso encontre algum bug (erro), por favor não copie e cole meu código no seu projeto. Tente rastrear o problema você mesmo e use o meu código como uma referência para contrastar o que pode estar errado, ou onde o erro pode estar.

#include <stdio.h>

int main(int argc, char** argv) {
  puts("Hello, world!");
  return 0;
}

Metas bônus


Para que serve esta seção?

Nesta seção listarei algumas coisas para experimentar por diversão, e aprendizado.

É legal que você tente fazer alguns desses desafios. Alguns serão difíceis e alguns serão muito mais fáceis. Por isto, não se preocupe se você não consiga descobrir todos. Alguns podem nem mesmo ser possíveis!

Muitos vão requerer alguma pesquisa na internet. Esta é uma parte integral de aprender uma nova linguagem então não deve ser evitada. A habilidade de ensinar você mesmo é uma das competências mais valiosas em programação

  • › Mude a mensagem Hello World! dada pelo seu programa para algo diferente.
  • › O que acontece quando nenhuma função main é fornecida?
  • › Use a documentação online para buscar a função puts.
  • › Pesquise como usar o gdb e rodá-lo com seu programa.

Navegação

‹ Introdução

• Conteúdo •

O Básico ›