23
Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Embed Size (px)

Citation preview

Page 1: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Ferramentas de Desenvolvimento

Curso de aprofundamento na linguagem C

Page 2: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Ferramentas Compiladores

Gcc Visual C++ C++ Builder ...

Debuggers Gdb, ddd Integrados

Page 3: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Ferramentas de Make Gmake Make

Makefile

Page 4: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Gcc Utilizado em sistemas baseados em

UNIX Cross-compilers Windows através do Cygwin Gera código para diversas

plataformas Antigo x Bugado

Page 5: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

gcc Distribuido junto com binutils (ld, as,

etc..) Possui vários níveis de otimização Mensagens de erro consistentes Suporte a #pragma

Page 6: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

gcc Opções mais inportantes

-c -o -lbiblioteca -Lcaminho -Icaminho -shared -g

Page 7: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

gcc Opções importantes

-Ox (0, 1, 2, 3, s) -Wall -Dmacro[=def]

Page 8: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Debuggers Gdb (GNU debugger) DDD (Interface gráfica para o GDB)

Page 9: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

gdb Usado juntamente com o gcc Opção –g Frontends

Kdevelop Eclipse

Comandos no prompt

Page 10: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

gdb Comandos

run [param] break [file:line] [function]] continue Print Next (step over) Step (step into) Bt

Page 11: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

gdb Comandos

Help Quit Display Condition N EXP

Page 12: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Gerenciamento de compilação de

programas grandes Diminui tempo de recompilação Passos de geração de programa

Compilação Link

Dependências

Page 13: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Dependência

Grafo de dependência

Page 14: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Representação textual do grafo de

dependências

project1: data.o main.o io.o

data.o: data.c data.h

main.o: main.c data.h io.h

io.o: io.c io.h

Page 15: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Regras de compilação

Associadas a cada alvo

project1: data.o main.o io.ogcc data.o main.o io.o –o project1data.o: data.c data.hgcc –Wall –g –c data.cmain.o: main.c data.h io.hgcc –Wall –g –c main.cio.o: io.c io.hgcc –Wall –g –c io.c

Page 16: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Makefile

Definição de macros e variáveis Regras de dependência Presente no diretório corrente

Page 17: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Macros Padrão

CC CFLAGS LDFLAGS $@ $< $?

Page 18: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Macros diminuem e tornam o

Makefile portável Regras utilizando curingas (%) Regras utilizando substituição ($

(VAR:.x:.y)) Chamadas ao shell

($(shell command)

Page 19: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Opções extra

Regras condicionais• Target::cond1

• command1

• Target::cond2• command2

Page 20: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Opções Extra

Regras especiais• .SUFFIXES: .c .o

• .c.o:• $(CC) $(CFLAGS) –c $< -o $@

Page 21: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Ferramentas de geração automática de dependências

Makedepend Opção –Y Gera apenas as regras, não os

comandos

Page 22: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

makedepend Uso em conjunto com o make Make depend Outras regras importantes

Clean Install Package

Page 23: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

make Exercicio

Gerar release Gerar debug