【Linux 多文件编译】gcc_makefile

本文介绍了如何在Linux中使用mkdir、vi和GCC编译器进行C语言多文件编程,并通过Makefile实现编译过程的自动化管理。重点讲解了Makefile的工作原理,如何根据文件更新情况触发重新编译,并展示了clean功能的使用。
摘要由CSDN通过智能技术生成

Linux makefile

掌握GCC多文件编程方法,掌握Makefile基本语法。

1、在$HOME目录下以自己的学号建立文件夹;

使用mkdir filename 命令创建文件

cd filename/ 进入所创文件夹目录下

接下来便可以使用vi 编辑器编辑程序了

在这里插入图片描述

2、在该文件夹下利用VI编辑器和GCC编译器完成C语言多文件(大于等于两个文件)编译;

程序编写完毕后到产生结果四步骤:

(1) 预处理

(2) 编译

(3) 汇编

(4) 链接

前三个步骤统称为编译

c1.c–> xxx.s–>xxx.o

c2.c -->yyy.s–>yyy.o

最后将xxx.o和yyy.o链接在一起得到一个test应用程序 gcc -o test c2.c c3.c 编译c2.c 和c3.c文件 运行 ./test 输出结果

在这里插入图片描述

3、使用VI编写Makefile文件。

Makefile 工作原理:用于管理和组织代码工程的编译和链接,其不是可执行文件,其被make工具解析并完成相关动作

比较c1.o和c1.c的时间,如果c1.c的时间比c1.o的时间更加新的话,就表明c1.c被修改了,同理c2.o和c2.c也会进行同样的比较。比较test和c1.o,c2.o的时间,如果c1.o或者c2.o的时间比test更加新的话,就表明应该重新生成test。

编写makefile文件

在这里插入图片描述
在这里插入图片描述

执行make命令

当我们想编译程序时,直接执行make命令,一执行make命令它想生成第一个目标test可执行程序,如果发现c2.o或者c3.o没有,就要先生成c2.o或者c3.0,发现c2.o依赖c3.c,有c2.c但是没有c2.o,他就会认为c2.c比c2.o新,就会执行它们下面的命令来生成c2.o,同理c3.o和c3.c的处理关系也是这样的。

在这里插入图片描述
在这里插入图片描述

添加clean :

make clean:清除所有文件,即执行:rm *.o test
在这里插入图片描述
在这里插入图片描述

  • makefile 工作方式

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Data艺术家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值