[Prévia cron] [Próxima Cron] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto] [Índice de autor]

Re: sugestão de uso do gcc



Enquanto os monitores e/ou a turma do BCC não indicarem informações
mais completas, lá vai uma solução de emergência: todos os arquivos
mencionados encontram-se no diretório

  http://www.ime.usp.br/~is/ddt/mac122-00/compilando-com-gcc

Coloque no seu diretório de trabalho o arquivo Makefile

Coloque também o seu programa fonte, digamos crivo.c

Para compilar crivo.c execute o comando:

  make crivo

Ao final do processo Você terá o arquivo executável crivo no seu
diretório

Execute o comando

  crivo

e o seu programa será executado.

Existem casos um pouco mais complicados. Um exemplo é o programa
usa-dist que exige também o processamento do programa distance.c
Neste caso, Você deve ensinar o arquivo Makefile as dependências que
Você tem. No caso, Você tem que acrescentar ao Makefile (com um editor
qualquer, recomendamos o emacs) a linha:

usa-dist: distance.o usa-dist.o

Esta linha ensina ao make que usa-dist depende de distance.o e de
usa-dist.o, as demais instruções são suficientes para ensinar a make
fabricar os arquivos necessários.

Ou seja, após acrescentar aquela linha (que já está no Makefile neste
caso), execute o comando:

  make usa-dist

Isto compilará o executável usa-dist.

A seguir dou as saídas de uma sessão no meu computador.

Partimos apenas com os arquivos Makefile e os fontes .c e .h:

  <1864:105>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > ll
  total 5
  -rw-------   1 is       mac           673 Aug 31 17:23 Makefile
  -rw-------   1 is       mac            78 Aug  9  1999 Point.h
  -rw-------   1 is       mac           411 Aug 31 17:29 crivo.c
  -rw-------   1 is       mac           170 Aug  9  1999 distance.c
  -rw-------   1 is       mac           164 Aug 31 17:29 usa-dist.c
  <1865:106>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > 

Agora compilamos crivo e usa-dist:

  <1865:106>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > make crivo
  make crivo.o
  make[1]: Entering directory `/home/mac/is/www/ddt/mac122-00/compilando-com-gcc'
  gcc -I.  -c crivo.c
  make[1]: Leaving directory `/home/mac/is/www/ddt/mac122-00/compilando-com-gcc'
  gcc -I.  -o crivo crivo.o -lm  
  <1866:107>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > make usa-dist
  gcc -I.  -c usa-dist.c
  gcc -I.  -c distance.c
  gcc   usa-dist.o distance.o  -lm  -o usa-dist
  <1867:108>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > 

Agora já temos os dois executáveis também, além dos arquivos .o:

  <1867:108>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > ll
  total 27
  -rw-------   1 is       mac           673 Aug 31 17:23 Makefile
  -rw-------   1 is       mac            78 Aug  9  1999 Point.h
  -rwx------   1 is       mac          7636 Aug 31 17:44 crivo*
  -rw-------   1 is       mac           411 Aug 31 17:29 crivo.c
  -rw-------   1 is       mac          1492 Aug 31 17:44 crivo.o
  -rw-------   1 is       mac           170 Aug  9  1999 distance.c
  -rw-------   1 is       mac           760 Aug 31 17:44 distance.o
  -rwx------   1 is       mac          7404 Aug 31 17:44 usa-dist*
  -rw-------   1 is       mac           164 Aug 31 17:29 usa-dist.c
  -rw-------   1 is       mac          1028 Aug 31 17:44 usa-dist.o
  <1868:109>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > 

Estamos prontos para executar os programas:

  <1872:113>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > crivo 20
     2    3    5    7   11   13   17   19 
  <1873:114>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > crivo 30
     2    3    5    7   11   13   17   19   23   29 
  <1874:115>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > usa-dist
  5.000000 
  <1875:116>[fradim:/home/mac/is/www/ddt/mac122-00/compilando-com-gcc] > 

Boa sorte,

Imre Simon


: Date: Thu, 31 Aug 2000 13:14:33 -0300
: From: Noboru Jo Sakabe <noboru@iq.usp.br>
: To: is-122-00@ime.usp.br
: Subject: =?iso-8859-1?Q?sugest=E3o?= de uso do gcc
: 
: Gostaria de sugerir que os professores disponibilizassem um tutorial
: para o uso do gcc (na home-page da disciplina ou em aula) para os
: neófitos no Linux como eu.