linux下gcc以及gdb的使用基础

本文介绍了在Linux环境下,使用GCC进行C语言代码编译的详细步骤及常用选项,并深入探讨了如何利用GDB进行程序调试,包括设置断点、查看变量值等关键操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 linux下学习C语言的两大强大工具,gcc、gdb

一、gcc的使用

C语言编译过程

1.预处理:宏定义展开,头文件展开,条件编译等,同时将代码中的注释删除

2.编译 :检测语法,将预处理后的文件编译生成汇编文件

3.汇编:将汇编文件生成目标文件(二进制文件)

4.连接:C语言写的程序需要依赖各种库,编译之后还需把库链接到最终的可执行程序中去

.c C语言文件

.i 预处理后的文件

.s 汇编文件

.o目标文件

C语言编译各阶段命令

gcc -E filename.c -o filename.i

gcc -S filename.c -o filename.s

gcc -c filename.c -o filename.o

要生成可执行文件为

gcc filename.c -o filename

gcc扩展

gcc可以对多种语言编写的代码进性编译,如果源代码文件扩展名不是默认扩展名,编译器就无法编译这个文件,这时候需要对文件进性操作,可以使用-x选项来设置程序语言

比如先复制一份c程序

cp file0.c file0.u

复制的文件扩展名被更改了

这时候编译这个程序是不能被gcc识别的,因此需要使用-x参数来设置编译语言,命令如下

gcc -x 'c' file0.u

一些其他比较有用的选项

-Wall 生成所有警告信息

-w 不生成警告信息

-Werror 将所有警告转化成错误信息并显示出来

-g 包含调试信息

-I 指定头文件目录路径

-L 指定库文件目录路径

-v 打印出编译过程中的命令行和编译器版本等信息

-O/O0 关闭优化等级

-O1 最基本的优化等级

-O2 更好的优化等级,推荐使用,编译器尝试提高代码性能但是又不会过于增加体积和编译时间

-O3最高优化等级

 

 

gdb的使用

gdb是linux下常用的程序调试工具,用于调试c和c++

gdb使用操作可分为

启动程序,设置断点,查看信息,分布运行,改变环境

为了可使用gdb调试,需要在编译的时候加入调试信息

命令如下

gcc -g wenjian.c -o wenjian.debug

编译成功后启动gdb

输入以下命令显示10行代码,按enter建显示接下来的10行代码

list l

run:运行程序

next:运行到下一行停止

continue:运行到下一个断点停止运行

step:运行到函数的内部

finish:退出已进入的函数

print 变量:使用以下命令查看变量数值

display 变量:查看变量的数值

set 变量:设置变量的数值

break n:对第n行加入断点

info breakpoint :输入下列命令查看所有已经设置的断点

delete b n:删除第n个断点

disable b n:禁用第个断点

enable b n:启用第n个断点

clear n:清除某处所有的断点

完成调试后,输入q退出调试

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值