61.linux系统上c程序的编译与调试

       

目录

1.检查GCC是否已经安装:​编辑

2.使用包管理器来安装gcc:

3.c程序执行需要经过四个步骤

4.make和makefile

5.gdb调试 

基础调试命令 

一些示例 


        对于在Linux系统上编译和调试C程序,首先,需要确保已经安装了合适的编译器。在大多数Linux发行版中,常用的C编译器是GCC。

1.检查GCC是否已经安装:

这里提供了有关系统上安装的 GCC(GNU 编译器集合)版本的信息。输出显示我的系统上安装了 GCC 版本 9.4.0,而这是在 Ubuntu 20.04.1 上。 

2.使用包管理器来安装gcc:

如果GCC未安装,您可以使用包管理器来安装它。例如,在Ubuntu上可以使用以下命令: 

sudo apt-get install build-essential

3.c程序执行需要经过四个步骤

(1) 预编译 :gcc -E main.c -o main.i
(2) 编译:  gcc -S main.i -o main.s
(3) 汇编:  gcc -c main.s -o main.o
(4) 链接:  gcc main.o -o main

也可以一步编译gcc -o main main.c 

4.make和makefile

管理工程 实现自动化编译 (和 vs 比较)示例:
对 main.c add.c max.c 三个文件进行编译(注意: gcc 前面必须是 table 键缩进,或者在上一行末尾敲换行,自动缩进到table键位上)
注:文件名必须是makefile

makefile文件

 main.c文件
extern 关键字,链接其他文件

add.c文件

 

max.c文件

 

执行make命令 

执行make clean命令 

 

5.gdb调试 

  • ​ gcc -o main main.c -g 切换debug
  •  gdb main 启动调试
  • (gdb)出现 启动调试成功 ,可以输入命令

此时就进入了debug模式下

基础调试命令 

1. l //显示 main 函数所在的文件的源代码
2. list 文件名:num //显示 filename 文件 num 行上下的源代码
3. b 行号 //给指定行添加断点
4. b 函数名 //给指点函数的第一有效行添加一个断点
5. info break //显示断点信息
6. delete 断点号 //删除指定断点
7. disable 断点号 //将断点设定为无效的,不加断点号,将所有断点设置为无效
8. enable 断点号 //将断点设定为有效的,不加断点号,将所有断点设置为有效
9. r(run) //运行程序
10. n(next) //单步执行
11. c ( continue) //继续执行,直接执行到下一个断点处
12. s //进入将要被调用的函数中执行
13. finish //跳出函数

14. q //退出调试
15. p val //打印变量 val 的值
16. p &val //打印变量 val 的地址
17. p a+b //打印表达式的值
18. p arr(数组名) //打印数组所有元素的值
19. p *parr@len //用指向数组的指针打印数组所有元素的值
20. display //自动显示,参数和 p 命令一样
21. info display //显示自动显示信息
22. undisplay + 编号 //删除指定的自动显示
23. ptype val //显示变量类型
24. bt //显示函数调用栈

一些示例 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清酒。233

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值