Ir para o conteúdo principal
Paca
  • Página inicial
  • Mais
Português - Brasil ‎(pt_br)‎
English ‎(en)‎ Português - Brasil ‎(pt_br)‎
Você acessou como visitante
Acessar
Página inicial
  1. Semestres anteriores
  2. MAC0122-T41
  3. 4o Exercício Programa: Cartões Marmitex
Tarefa

4o Exercício Programa: Cartões Marmitex

Condições de conclusão
Aberto: quarta-feira, 10 out. 2007, 09:00
Vencimento: sábado, 3 nov. 2007, 23:55
Enunciado do programa em PDF.

Arquivos de testes com extensão .list e os arquivos
monolitico.c
leitura.c
leitura.h
cartao.c
cartao.h
Makefile

você encontra nesse diretório. O arquivo todos.tgz possui todos
os arquivos compactos. Para descompactar, basta colocar o arquivo
todos.tgz no diretório onde você deseja expandir os arquivos e dar
o comando:
tar -xzf todos.tgz

Ultima atualizacao: 23:00h de 10/10. Os arquivos cartao.h e cartao.c foram atualizados, e colocamos o executavel Linux para esclarecer suas duvidas com relacao ao funcionamento do programa.

Para trabalhar com múltiplos arquivos em Linux, é bom você utilizar um Makefile.

Formato de um Makefile (adaptado das notas de aula do Prof. Coelho)

Um MakeFile consiste de uma seqüência de `regras' com o seguinte formato:
 <target> : <dependências> <comando1> <comando2> ... 

Um target é usualmente o nome de um arquivo que é gerado por um programa; exemplos de targets são arquivos executáveis (bin ou .o). Um target também pode ser o nome de uma ação, tal como `clean'.

Uma dependência é um arquivo que é usado para criar o target. Um target pode depender de vários arquivos.

Um comando é uma ação que Make pode mandar que seja executada. Um regra pode ter mais que um comando, cada um em uma linha. Nota: deve existir um caractere TAB ('\t') no início de cada linha.

Exemplo de um MakeFile

A seguir está um exemplo típico de um arquivo Makefile (os números das linhas foram colocada apenas para efeito de referência, eles não fazem parte do MakeFile):

1 meuprog: meuprog.o fila.o etc.o 2 gcc meuprog.o fila.o etc.o -o meuprog 3 4 meuprog.o: meuprog.c minhasdefs.h fila.h etc.h 5 gcc -c meuprog.c 6 7 fila.o: fila.c minhasdefs.h fila.h 8 gcc -c fila.c 9 10 etc.o: etc.c minhasdefs.h etc.h 11 gcc -c etc.c 12 13 clean: 14 rm -f meuprog.o fila.o etc.o 
Este exemplo ilustra o formato de um arquivo MakeFile.

Linhas 1, 4, 7, 10 e 13 fornecem informações de dependência. Em uma linha de dependência o nome de um target files aparece primeiro, seguido por dois pontos (`:'). Depois dos dois pontos segue-se uma lista (possivelmente vazia) de arquivos dos quais o target depende. A Linha 7, por exemplo, diz que o target file fila.o depende dos arquivos fila.c, minhasdefs.h e fila.h.

Uma linha de dependência é seguida por uma ou mais linhas com comandos (rebuild comandos) que criam ou atualizam o target file especificado na linha de dependência. O primeiro caractere de um linha contendo um comando deve ser um TAB (`\t'); uma, aparentemente idêntica, seqüência de espaços não pode ser usada no lugar do TAB. Linhas 2, 5, 8, 11 e 14 contém comandos. A Linha 8, por exemplo, diz que o comando

meu_prompt> gcc -c fila.c

deverá ser executado para reconstruir o target fila.o a partir dos arquivos fila.c, minhasdefs.h e fila.h. Neste particular Makefile, cada linha de dependência é seguida por apenas uma linha de comando.

As linhas em branco (linhas 3, 6, 9 e 12) são ignoradas. Estas linhas podem estar presente apenas para facilitar a legibilidade do MakeFile, mas elas não são necessárias. Para saber mais, você pode consultar o tutorial de Makefile da UFRJ.





Você acessou como visitante (Acessar)
Resumo de retenção de dados
Baixar o aplicativo móvel.
Fornecido por Moodle