Makefile的简易编写

需要知道的

gcc简单流程{
							gcc -E main.c -o main.i  //预处理,生成.i文件
							gcc -S main.i -o main.s  //编译,生成汇编文件.s
							gcc -c main.s -o main.o  //汇编生成目标文件.o
}
makefile框架:
target:dependencies  //依赖关系
	command                        //具体操作流程

make优点

在linux中,我们编译用到了gcc编译。
一般情况下,假如有一个main.c文件,我们可以gcc -o main main.c来对他编译,编译完我们就可以得到main的可执行文件。

这里的makefile的编写是:

1
2 main:main.c
3	   gcc -o main main.c

这是最简单的一种方式

但是在项目中一般都是有很多很多的其他依赖文件,所以我们每一次gcc的量都很多,而且每一次编译都要gcc一下很麻烦,而且会很慢。但是我们编好makefile后我们只需要每次make一下就能完成,并且可以clean掉其他多余的过程文件,每次的修改,也只是编译修改的文件,所以速度也会快一点。

makefile

例子:
我们需要init.c display.c input.c main.c 生成main执行文件
我们把init.c,display.c,input.c中函数声明写在test.h头文件中,在.c文件中加上

1
2  main:main.o input.o init.o display.o 
3 	gcc -o main main.o input.o init.o display.o
4 input.o:input.c
5 	gcc -o input.o input.c
6 init.o:init.c
7 	gcc -o init.o init.c
8 display.o:display.c
9 	gcc -o display.o display.c
10 clean:
11	rm *.o

其中rm *.o删除所有.o文件

变量的使用与伪目标
我们可以定义一个变量并替换它,clean我们也不是要生成它,可以设置为伪目标:.PHONY:clean

1 CC = gcc
2	.PHONY:clean
3  main:main.o input.o init.o display.o 
4  	$ (CC) -o main main.o input.o init.o display.o
5 input.o:input.c
6 	$ (CC)  -o input.o input.c
7 init.o:init.c
8 	$ (CC) -o init.o init.c
9 display.o:display.c
10  $ (CC) -o display.o display.c
11 clean:
12 	rm *.o

可以在makefile中用#来注释
或者我们如果要生成多个main执行文件,例如mainmax与mainmin
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值