Linux下如何编写一个简单的Makefile文件

一、Makefile基本知识点
1.makefile文件关系到整个工程的编译规则。(一个工程中的源文件不计其数,其按照类型,功能,模块分别存放在不同的目录中)
2.Makefile定义了一系列的规则来指定,那些文件需要先编译,那些文件需要重新编译。3.makefile像一个shell脚本一样,其中也可以执行操作系统的命令。
4.makefile一旦写好,只需要一个make命令就可以使得工程完全自动化编译,可以提高软件开发的效率。
二、Makefile的规则
1.目标文件:依赖文件
命令
2.每一个.o文件都有一组依赖文件,而.o文件又是目标文件的依赖文件。依赖关系的实质上就是说明了目标文件是由哪些文件生成的。
3.clean不是一个文件,它是一个动作的名字,所以make没有依赖文件,也就不会自动的去执行它后面的命令,所以要想执行它后边的命令就需要在make命令后,再执行clean这个命令。

all:ser
ser:ser.o thread.o
	gcc -o ser ser.o thread.o -lpthread
ser.o:ser.c
	gcc -c ser.c
thread.o:thread.c
	gcc -c thread.c -g
clean:
	rm -rf *.o ser

注意:此处命令行以tab键为开头
解释:all:ser --------> 表示最终生成的文件是ser
ser:ser.o thread.o ---------> ser的依赖文件是ser.o和thread.o
gcc -o ser ser.o thread.o -lpthread--------->链接的过程(thread.o是一个多线程文件所以加上了-lpthread)
ser.o:ser.c ---------> ser.o的依赖文件是ser.c
gcc -c ser.c ----------->
thread.o:thread.c ---------> thread.o的依赖文件是thread.c
gcc -c thread.c -g
clean:
rm -rf *.o ser ----------->执行clean命令后删除所有的.o文件
如下图中ser_file这个文件夹中会存在很多命令
在这里插入图片描述
执行make后文件将进行自动编译。
在这里插入图片描述
三、make的工作原则
make会一层一层的找文件的依赖关系,直到最终编译出第一个目标文件。在过程中如果出现错误则直接退出,并报错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值