编译、调试、makefile

文章介绍了GCC编译器的工作流程,包括预处理、编译、汇编和链接四个阶段,以及如何使用GDB进行程序调试,如设置断点、查看变量和控制程序运行。此外,还概述了makefile在工程管理中的作用,展示了简单的makefile规则示例。
摘要由CSDN通过智能技术生成

编译、调试、makefile工程

一、GCC

1.GCC (GNU C Compiler)

官网https://gcc.gnu.org/

GCC是由GNU开发的编程语言编译器,GNU编译器套件包括C、C++、Java等,也包括了这些语言的库。

源代码文件(.c)经过编译得到可执行的应用程序。

2.GCC编译流程
1.预处理
gcc -E -o   目标文件1.i    源代码文件.c
生成后缀为.i的文件,原始C语言程序。

在这里插入图片描述

2.编译
gcc -S -o   目标文件2.s    目标文件1.i
生成后缀为.s的汇编语言的原始程序

在这里插入图片描述

3.汇编
gcc -c -o    目标文件3.o    目标文件2.s
将汇编语言转化成后缀为.o的二进制文件

在这里插入图片描述

4.链接
gcc -o      目标文件3.o    目标文件
将二进制文件与库文件进行链接,生成可执行的目标文件

在这里插入图片描述

5.执行

在这里插入图片描述

也可以一次性编译完成

在这里插入图片描述

二,GDB 调试

1.调试器功能

1.能够运行程序,设置程序运行的参数

2.能够让程序在指定条件下停止运行

3.能够在程序停止时检查所有参数情况

4.能够根据指定条件改变程序运行

2.调试

程序编译时需加-g

gcc -g  test.c -o test

在这里插入图片描述

1.进入GDB
gdb test

在这里插入图片描述

2.查看文件
l或ilst

在这里插入图片描述

3.设置断点
b + 行号 或 break + 行号

在这里插入图片描述

4.查看断点处情况
info b 或info breakpoints

在这里插入图片描述

5.运行代码
r (run) 或 加上行号可以从指定位置开始运行

在这里插入图片描述

在断点处停止,按c继续运行。

6.查看变量值
p + 变量名
7.观察变量
watch n
8.单步运行
n(next)

在这里插入图片描述

9.程序继续运行
c(continue)

在这里插入图片描述

10.退出GDB
q(quit)

在这里插入图片描述

三、make工程管理器

makefile是由规则构成的

编写规则格式:

target1,target2 ……:dependence-file1,dependence-file2……
	command1
	command2

target:目标体(目标文件、可执行文件等)

depend-file:创建目标体所依赖的文件

command:要运行的命令(有tab缩进并独占一行)

在这里插入图片描述

#makefile
hello:hello.c
	gcc hello.c -o hello
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值