Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C

Preview:

Citation preview

Ferramentas de Desenvolvimento

Curso de aprofundamento na linguagem C

Ferramentas Compiladores

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

Debuggers Gdb, ddd Integrados

Ferramentas de Make Gmake Make

Makefile

Gcc Utilizado em sistemas baseados em

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

plataformas Antigo x Bugado

gcc Distribuido junto com binutils (ld, as,

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

gcc Opções mais inportantes

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

gcc Opções importantes

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

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

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

Kdevelop Eclipse

Comandos no prompt

gdb Comandos

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

gdb Comandos

Help Quit Display Condition N EXP

make Gerenciamento de compilação de

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

Compilação Link

Dependências

make Dependência

Grafo de dependência

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

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

make Makefile

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

make Macros Padrão

CC CFLAGS LDFLAGS $@ $< $?

make Macros diminuem e tornam o

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

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

($(shell command)

make Opções extra

Regras condicionais• Target::cond1

• command1

• Target::cond2• command2

make Opções Extra

Regras especiais• .SUFFIXES: .c .o

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

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

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

comandos

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

Clean Install Package

make Exercicio

Gerar release Gerar debug

Recommended