Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C
Ferramentas Compiladores Debuggers Gcc Visual C++ C++ Builder ... 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 Comandos no prompt 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.o gcc data.o main.o io.o –o project1 data.o: data.c data.h gcc –Wall –g –c data.c main.o: main.c data.h io.h gcc –Wall –g –c main.c io.o: io.c io.h gcc –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 Target::cond2 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