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程序执行需要经过四个步骤

61.linux系统上c程序的编译与调试_第1张图片

(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

61.linux系统上c程序的编译与调试_第2张图片

也可以一步编译gcc -o main main.c61.linux系统上c程序的编译与调试_第3张图片 

4.make和makefile

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

makefile文件

61.linux系统上c程序的编译与调试_第4张图片 main.c文件
extern 关键字,链接其他文件

61.linux系统上c程序的编译与调试_第5张图片

add.c文件

 61.linux系统上c程序的编译与调试_第6张图片

max.c文件

 61.linux系统上c程序的编译与调试_第7张图片

执行make命令 61.linux系统上c程序的编译与调试_第8张图片

执行make clean命令 61.linux系统上c程序的编译与调试_第9张图片

61.linux系统上c程序的编译与调试_第10张图片 

5.gdb调试 

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

61.linux系统上c程序的编译与调试_第11张图片

此时就进入了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 //显示函数调用栈

一些示例 

61.linux系统上c程序的编译与调试_第12张图片 

 61.linux系统上c程序的编译与调试_第13张图片

你可能感兴趣的:(Linux学习历程,linux,c语言,运维)