Programar em C/Utilizando um compilador

Origem: Wikilivros, livros abertos por um mundo aberto.

Compiladores: visão geral[editar | editar código-fonte]

Um compilador é, geralmente, um programa de modo texto, que deve ser operado diretamente da linha de comando, sem nenhuma interface gráfica. Essa é uma das razões pelas quais muitas pessoas preferem usar IDEs. No entanto, saber um pouco sobre como usar o compilador pela linha de comando pode vir a ser útil, por exemplo quando você não tiver um IDE à disposição. Não é nenhum bicho-de-sete-cabeças, e a sintaxe da maioria dos compiladores é semelhante.

Para executar o compilador, você precisa abrir um terminal (ou "prompt de comando", como costuma ser chamado no Windows, ou ainda console). É lógico que se você estiver em um sistema sem ambiente gráfico (como o DOS), você não precisa fazer isso.

O Windows só tem um terminal nativo, que é o interpretador de comandos dele (cmd.exe ou command.com). Pacotes como o Cygwin e o MSys (do mesmo projeto que o MinGW) incluem terminais alternativos que funcionam basicamente à maneira do Linux.

No Linux, além dos terminais de modo texto, há vários emuladores de terminal, entre os quais estão o XTerm, o Konsole (KDE) e o Terminal do Gnome. O uso de todos eles é idêntico.

gcc[editar | editar código-fonte]

Com o gcc, compilador da GNU utilizado principalmente no sistema operacional linux ou de tipo unix (mas também com versão para a arquitetura/sistema operacional MSWindows®), você pode executar a compilação e a montagem separadamente ou com um único comando. Se você tem vários arquivos-fonte, é mais recomendável executar as duas etapas separadamente: se você atualizar apenas um arquivo, só precisará recompilar o que atualizou e depois remontar. No entanto, se você está desenvolvendo um projeto grande, é recomendável usar ferramentas de automação do processo de compilação, como o make.

Resumo:

gcc [OPÇÕES] nome_do_arquivo

Aqui são listadas algumas das opções do gcc:

  • -c: Compila o código fonte mas não faz as ligações. A saída é um arquivo objeto.
  • -o: serve para dar um nome ao arquivo de saída.
  • -O2: ativa otimização no nível 2
  • -g: salva os símbolos de depuração (o que permite usar um depurador)
  • -Wall: ativa todos os avisos do compilador
  • -pedantic: ativa os avisos necessários para que o código esteja estritamente de acordo com os padrões

Para compilar o arquivo "programa.c", gerando o código-objeto "programa.o":

gcc [OPÇÕES] -c programa.c

Para gerar o executável "programa binario" bin ou "programa.exe" no Windows/DOS a partir do código-objeto:

gcc [OPÇÕES] -o programa[.bin] programa.o

Para gerar o executável diretamente a partir do arquivo-fonte:

gcc [OPÇÕES] -o programa[.bin] programa.c

Dev-C++[editar | editar código-fonte]

Dev-C++ é uma IDE (Integrated Development Environment) desenvolvido para ambiente MS Windows® (funcionando em ambientes Unix através do Wine). Embora ele possua uma interface gráfica, sua instalação inclui o compilador gcc do projeto mingw, completamente funcional via linha de comando.

Via interface gráfica a compilação é feita através do atalho de teclado <Ctrl>+F9. Via linha de comando, o compilador gcc utilizado por ele possui a maioria das mesmas opções básicas das versões *nix explicadas acima.

IDE Dev-C++

Visual C++[editar | editar código-fonte]

Este módulo precisa ser revisado por alguém que conheça o assunto (discuta).

Em alguma versão não especificada do Visual C++, para compilar o arquivo "programa.c", gerando o código-objeto "programa.obj":

cl /c programa.c

Para gerar o executável "programa.exe" a partir do código-objeto:

link /out:programa.exe programa.obj

Para gerar o executável a partir do arquivo-fonte:

cl programa.c