Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.
Transcript of Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.
![Page 1: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/1.jpg)
Ferramentas de Desenvolvimento
Curso de aprofundamento na linguagem C
![Page 2: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/2.jpg)
Ferramentas Compiladores
Gcc Visual C++ C++ Builder ...
Debuggers Gdb, ddd Integrados
![Page 3: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/3.jpg)
Ferramentas de Make Gmake Make
Makefile
![Page 4: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/4.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/5.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/6.jpg)
gcc Opções mais inportantes
-c -o -lbiblioteca -Lcaminho -Icaminho -shared -g
![Page 7: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/7.jpg)
gcc Opções importantes
-Ox (0, 1, 2, 3, s) -Wall -Dmacro[=def]
![Page 8: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/8.jpg)
Debuggers Gdb (GNU debugger) DDD (Interface gráfica para o GDB)
![Page 9: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/9.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/10.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/11.jpg)
gdb Comandos
Help Quit Display Condition N EXP
![Page 12: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/12.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/13.jpg)
make Dependência
Grafo de dependência
![Page 14: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/14.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/15.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/16.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/17.jpg)
make Macros Padrão
CC CFLAGS LDFLAGS $@ $< $?
![Page 18: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/18.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/19.jpg)
make Opções extra
Regras condicionais• Target::cond1
• command1
• Target::cond2• command2
![Page 20: Ferramentas de Desenvolvimento Curso de aprofundamento na linguagem C.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/20.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/21.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/22.jpg)
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.](https://reader036.fdocumentos.com/reader036/viewer/2022081518/552fc10b497959413d8c32d8/html5/thumbnails/23.jpg)
make Exercicio
Gerar release Gerar debug