C - Include e Makefile

Este artigo tem o objetivo de explicar e orientar o uso da diretiva include e do uso de Makefile em seus projetos. Suponho que você tenha um pouco (não precisa ser muito) de conhecimento em C e saiba usar o compilador gcc sobre o GNU/Linux.

[ Hits: 95.852 ]

Por: Gilzamir Ferreira Gomes em 16/04/2005


Conclusão



Para o exemplo dado, o exemplo de uso de arquivos Makefile é muito simples. No entanto, para projetos grandes e sérios, a complexidade é muito grande e torna-se necessário uma ferramenta (diga-se software ou programa) que auxilie na criação dos Makefiles. Num mesmo projeto podem haver vários Makefiles. Makefiles para projetos criados no KDevelop são criados automaticamente e à medida que você adiciona arquivos ao projeto. Mas vale à pena ter uma noção geral de como o negócio funciona.

Outra vantagem do uso do make que não foi mencionada nas páginas anteriores foi a seguinte: imagina um projeto imenso (um jogo por exemplo) em que o processo de compilação demora horas. Se modificações em um arquivo forçasse a compilação completa do programa, perderíamos muito tempo. Com o uso do make torna-se fácil compilar apenas o que foi modificado e suas dependências (ou regras), reduzindo bastante o tempo de compilação.

Só lembrando que C ainda é uma linguagem muito utilizada para a criação de programas de sistema, como compiladores. Apesar de não ser orientada à objetos, ainda é muito importante estudar a linguagem C (e C++ quando possível). Outras linguagens que eu uso e aconselho são:
  • C++;
  • C# (com Mono);
  • e Java.

IDES Para as linguagens mencionadas:
  • KDevelop (geralmente é instalada junto com o KDE): C, C++, Java e muitas outras;
  • Monodevelop: serve para qualquer linguagem suportada pelo Mono, como C#, Java e VB .NET. Site: http://www.monodevelop.com;
  • Eclipse: com um plugin adequado, qualquer linguagem pode ser usada nesta IDE. Site: http://www.eclipse.org;
  • X-Develop: suporta C#, Java, C++ e outras linguagens suportadas pelo Mono e/ou .NET. Site: http://www.x-develop.com.

Página anterior    

Páginas do artigo
   1. A diretiva include
   2. Criando um Makefile para o exemplo apresentado
   3. Conclusão
Outros artigos deste autor

Mono - Por que usá-lo?

Mono e C# (parte 1)

Mono e C# (parte 2)

Ser livre, mas manter padrões

Leitura recomendada

Reprodução de arquivos WAV com SDL_mixer e linguagem C

Aleatoriedade em C

Túnel do Tempo: a função itoa()

Utilizando a biblioteca NCURSES - Parte I

Criação e uso de um interpretador de script BrainFuck em C++

  
Comentários
[1] Comentário enviado por agk em 19/04/2005 - 16:40h

Legal o artigo, parabéns, pena que não entendo nada de C e não consegui nem sequer fazer funcionar esse pequenos exemplos.

[2] Comentário enviado por goajunior em 20/04/2005 - 12:21h

Legal o artigo, parabéns, uma pergunta, supondo que o objeto metodos.o já esteja compilado e eu não quero recompilá-lo, apenas quero inserí-lo no objeto do meu programa, como eu faço isso no Makefile ?

[3] Comentário enviado por kaos666 em 21/04/2005 - 00:06h

você não precisa fazer nada, o make faz isso para você.

[4] Comentário enviado por kernel_sys em 10/10/2005 - 13:38h

Legal o artigo parabens

[5] Comentário enviado por italo em 14/03/2008 - 20:28h

Fui brincar com o Makefile e surgiu uma duvida ou bug sei la. fiz um pequeno programa em c, com apenas um printf e uma chamada ao sistema.

#include <stdio.h>

int main(){
printf("Entrando na net!\n");
system("firefox uol.com.br");
return 0;
}

e escrevi meu Makefile:
net:
gcc net.c -o net
rodei a 1 vez e deu td blza. Entaum resolvi adicionar mais uma linha no main
system("ls -a");

salvei. rodei o make e ele disse que meu programa ja tava atualizado "up-date" e quando rodei ele rodou a versao antiga, sem a chamada
system("ls -a");

pq??? sera que ele naum consegui identificar que o arq foi modificado?? ou deixei de explicitar alguma coisa no Makefile???

quem quiser mandar a resposta via e-mail: soutoitalo [at] gmail.com

[6] Comentário enviado por delmarcs em 15/09/2009 - 11:14h

Excelente artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts