gcc、gdb、Makefile的使用

3 篇文章 0 订阅

目录:

  1. gcc
  2. gdb
  3. Makefile

环境:centos7系统

  1. gcc

Step1:编辑hello.c

Step2:gcc命令格式为:

gcc [选项] 要编译的文件 [选项] [目标文件]

gcc hello.c -o hello

执行命令生成了可执行文件,gcc的工作流程是:预处理>编译>汇编>连接。下面详细查看各种命令:

Step3:-E 只进行预处理,生成预处理文件hello.i

 

查看hello.i的内容发现,stdio.h的内容被加进来。

Step4:-S 只进行编译,不汇编,生成汇编代码hello.s

hello.s:

 

Step5:-c 只进行编译,不进行连接,生成目标文件.o

Step6:最后,进行链接,就可以生成可执行文件hello

Step7:-g 在可执行文件中,包含标准调试信息。

可执行文件hello2带有标准调试信息,可以使用gdb调试器调试。

Step8:-O2 完成程序的优化

  1. gdb

Step1:编辑test.c

Step2:编译生成带有调试信息的二进制可执行文件test

Step3:使用gdb进行调试。显示gdb的版本等信息。

Step4:l(list)命令用于查看代码文件。每行都有行号,用于设置断点。

Step5:b(breakpoint)命令用于设置断点。

格式:b 行号

Step6:info 命令,查看断点信息

Step7:r命令用于运行代码。也可以再r后面加行数,从程序指定行开始运行。

Step8:p(print)命令用于查看变量的值

格式:P 变量名

Step9:s命令用于单步运行,s会进入函数内部,而n不会。

Step10:n命令用于单步运行。

Step11:finish用于运行程序,直到当前函数结束。

注:当调试的时候觉得某个函数存在问题,进入函数调试之后发现问题不在这个函数,就可以使用finish命令运行程序,直到当前函数结束。

Step12: c命令用于恢复程序的运行,

注:我们在一个程序中设置了两个断点,而觉得问题不会再这两个断点之间的代码上,可以在查看完第一个断点的变量及堆栈情况后,使用c命令恢复程序的正常运行,代码就会停在第二个断点处。

Step13:q(quit)用于推出gdb调试。

  1. Makefile

Step1:编辑C程序

Step2:gcc编译可执行文件

Step3:编辑make file

makefile文件的三大构成要素:目标、依赖、命令。

Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:

$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。

Step4:运行makefile

Step5:改写makefile, 用变量进行替换

Step6:首先make clean  然后 make效果一样

Step7: 改写makefile,使用自动变量

Step8:首先make clean,然后make

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值