Comando MAKE

Andei pesquisando informações sobre o famoso comando MAKE, mas vi que aqui no VOL não tinha nenhum artigo sobre este assunto. Então pretendo com este artigo explicar algumas coisas sobre este.

[ Hits: 66.412 ]

Por: Andi em 08/10/2007 | Blog: http://vaganerd.wordpress.com/


Introdução



Para você que é um programador novato, já deve ter se deparado com o seguinte problema, precisar compilar vários arquivos, mas é chato ter que compilar um a um né? Bom, o comando make serve para isso, você pode compilar vários arquivos somente usando uma simples chamada a este comando, exemplo:

$ make

Assim, simples. Aí surge a pergunta, mas como diabos isso funciona, eu tentei e não consegui.

Bem isto é que irei explicar neste artigo.

O arquivo Makefile

O comando make faz uma "leitura" de um arquivo chamado Makefile (do inglês, ARQUIVO MAKE). Você tem que incluir um arquivo deste tipo para poder usar o comando nos seus programas, acho que a melhor maneira de explicar é dando um exemplo não é? Então vamos ao exemplo:

<main.c>
/*irei fazer um simples programa em C para demostrar como funciona*/
#include<stdio.h>

int main(){
   int num1;
   printf("Este programa mostra a tabuada.\n");
   printf("Você quer saber a tabuada de que numero:\n");
   printf("#: ");
   scanf("%d",&num1);
   for(int i=0;i<11;i++){
      printf("RESULTADO: %d\n",i*num1);
   }//for
   getchar();
   return 0;
}//main

Beleza, um programa simples para mostrar a tabuada na tela.

Agora vamos fazer o arquivo Makefile:

#Você tem que salvar este arquivo com o nome de Makefile ou makefile
tabuada: main.o
            gcc -o tabuada main.o #aqui você é obrigado a dar um espaço de tabulação
main.o:main.c
            gcc -c main.c #irei explicar mais adiante

#agora é só salvar na mesma pasta do arquivo <main.c>

PRONTO!!! O que você precisa fazer agora é só dar o make na linha de comando.

$ make

Explicação

Ah, muito bonito, mas não entendi nada daquele Makefile! Calma, vou explicar:

tabuada: main.o

Esta linha diz que o "script" tabuada é formado a partir do main.o.

gcc -o tabuada main.o

Aqui falei que precisa dar um espaço de tabulação (um TAB), o porque disto é explicado em REGRAS DA SINTAXE, se você simplesmente der um espaço ele irá dizer que tem erro, com uma mensagem bem chatinha.

gcc -o tabuada main.o é sobre o compilador, mas quer dizer que é para "montar" o arquivo tabuada com o main.o.

main.o.main.c

Esta linha diz que é para "montar" o arquivo main.o a partir de main.c. Quando digo montar quer dizer que é uma dependência, ou seja, o arquivo main.o depende de main.c, mas acho que montar fica mais fácil o entendimento, pelo menos para mim. :)

Bom, vimos para que o comando make serve, espero que todos tenham entendido, se ficou algo meio confuso, por favor avise-me para eu melhorar no próximo artigo.

Meu e-mail é: andiroots@gmail.com

Obrigado a todos!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Placa wireless broadcom com o driver BCM4310

Leitura recomendada

Squid logando usuários em aplicações web

TORCS – Instalação e criação de um bot simples

Gerenciando pacotes para C/C++ com Conan

Tutorial SDL

Conio.h para Linux

  
Comentários
[1] Comentário enviado por kalib em 08/10/2007 - 13:30h

Show de bola cara...
É uma informação útil para quem curte programação..e de nível essencial...
Bem explicado e comentado..
parabéns

[2] Comentário enviado por mrazec em 08/10/2007 - 13:41h

Ótimo artigo, está ai uma coisa que facilita muito, no Slackware nós usamos muito o make.

Parabéns ai...

[]'s
Razec

[3] Comentário enviado por helvecio34 em 08/10/2007 - 16:27h

Parabéns pelo artigo, o MAKE realmente ajuda muito na compilação.

A medida que o sistema fica mais complexo, com mais arquivos a serem compilados (e o tempo compilando aumenta), mais valioso o MAKE se tornar.

Ele trabalha analizando as datas dos arquivos com dependência. Um arquivo compilado com data mais nova do que o arquivo fonte indica que a compilação é desnecessária, economizando tempo.

Esse conceito é bastante abrangente, e tem utilidades em outras áreas além da área de desenvolvimento.

Abraços a todos.
Helvécio

[4] Comentário enviado por removido em 08/10/2007 - 21:55h

:

[5] Comentário enviado por saymon em 08/10/2007 - 23:06h

interessante...

[6] Comentário enviado por f_Candido em 08/10/2007 - 23:55h

Simples. Direto. Muito Bom.
Parabéns.

[7] Comentário enviado por schjunior em 09/10/2007 - 03:54h

Pra mim, deu erro na compilação com o 'make'.
Tem alguma dependencia para compilar programas escritos em C?

[8] Comentário enviado por roberto_espreto em 09/10/2007 - 10:51h

Fala ae Anderson!
Como te disse pelo msn, bom artigo cara, ficou bem claro e coerente!
Abração!

®

[9] Comentário enviado por nunesvictor em 09/10/2007 - 16:18h

pow cara...
valew msm...

uma dica facil de como usar o make pra qm tem o Qt Designer instalado...

dentro do seu diretório de fontes de o comando:

qmake -project

dae ele vai gerar um arquivo Makefile e um nomedodiretorio.pro

dae qdo vc usar $make ele vai compilar blz :p

o nome do executavel vai ser o nome do diretorio, c vc desejar mudar o nome do exe entre no arquivo nomedodiretorio.pro e na ultima linha digite
TARGET=nomedoexe

dae eh soh dar $make de novo e ele ja cria um novo exe com o nome que vc especificou =]

pra limpar os objetos gerados digite $make clean


abrass e parabéns!

[10] Comentário enviado por rodrigomflores em 09/10/2007 - 18:22h

Realmente muito bom esse seu artigo. Acredito que vai quebrar o galho de muita gente.

Só uma coisa a acrescentar: Não precisa chamar necessariamente Makefile o arquivo do Make. Você pode dar qualquer nome. Mas se não chama-lo de Makefile e chama-lo de arquivo terá que dar o comando make -f arquivo ao invés de dar somente o comando make. Mas sinceramente, nunca vi alguém não usar o padrão :-)

Abraços


[11] Comentário enviado por f_Candido em 14/01/2008 - 23:46h

Muito bom, agiliza bastante o trabalho.
Parabéns

[12] Comentário enviado por sambalak em 09/10/2008 - 18:31h

Boa dica

[13] Comentário enviado por fabiano1749 em 22/09/2012 - 19:30h

Muito útil para quem esta começando.
Obrigado.

[14] Comentário enviado por WallaceFelipe em 18/04/2014 - 12:47h

Cara como eu faço para instalar o java utilizando o make ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts