免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1515 | 回复: 0
打印 上一主题 下一主题

第五周:C语言 编译过程,GDB调试, Make 等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-21 08:41 |只看该作者 |倒序浏览
1. C                          GCC
预处理                    gcc -E
编译                       gcc -E        hello.c >> hello.i
汇编                       gcc -S hello.i -> hello.s
                              gcc -c hello.s -> hello.o
链接                       gcc -o hello hello.o
.exe
.out

gcc -O 优化
gcc -Wall
gcc -g   调试


2. GDB

gcc *.c -g( -g3)
gdb ./a.out

命令
(gdb) list  
(gdb) ctrl + l
(gdb) l 1                 从第1行开始显示
(gdb)l 20               显示15 ~25行代码

设置短点:
(gdb) b 42              设置第42行为断点
(gdb) info b             显示设置过的断点位置
(gdb) r                    开始运行
(gdb) display i       显示变量
(gdb) n                    下一步,不进入函数内部
(gdb)step               下一步,进入函数内部
(gdb) c                   从当前位置直接跳到下一个断点位置(或结尾)





3. Make file

main.c                                                     tool1.c                                      tool2.c
   |                                                                 |                                                 |
   |                                                                 |                                                 |
   |                                                                 |                                                 |
  V                                                                V                                                V
main.o                                                    tool1.o                                       tool2.o
  |                                                                  |                                                 |
 ----------------------------------------------------a.out------------------------------------


4.写个Makefile:

mytool:main.o tool1.o tool2.o
    gcc main.o tool1.o tool2.o -o mytool

main.o:main.c
    gcc -Wall -g -O -c main.c -o main.o
tool1.o:tool1.c
    gcc -Wall -g -O -c tool1.c -o tool1.o
tool2.o:tool2.c
    gcc -Wall -g -O -c tool2.c -o tool2.o

clean:
    rm -f *.o mytool

相关文档:

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP