如何写Makefile

12 篇文章 1 订阅
11 篇文章 0 订阅

一、什么是Makefile
Makefile是一种编译脚本,里面记录的编译代码的命令的集合

二、为什么要使用Makefile
1、随着项目规模的不断增加,代码量越来越来多,为了更好的管理代码、协同工作,不得不把代码拆分、设计成多个文件
2、由于源文件过多,编译时命令不易写,编译时间过长,而使用Makefile可以多目录编译,一次编写循环利用,有效节约编译时间
3、Makefile中可以使用分支、循环、函数、系统命令,以来控制、优化编译的过程

三、为什么使用Makefile可以节约编译时间
make程序会检查所需要编译的文件的最后访问时间,如果与上次编译时一致,就不再编译,也就是说每次执行make命令,只编译部分源文件,重新的生成.o结尾的目标文件,然后再把所有的目标文件合并成可执行文件

四、如何写Makefile

CC=gcc 指定编译器
STD=-std=gnu99	指定编译标准
FLAG=-Wall -Werror	指定编译参数,把警告改为错误
OBJ=xx.o xx.o xx.o  目标文件都写在这里
BIN=xxx.bin  指定程序名

注意:
1、变量与执行目标都顶格写,不要有空格
2、执行目标中的编译命令一定要使用tab键缩进
3、#可以进行注释

五、一个简单的Makefile

CC = gcc
STD = -std=gnu99
INCLUDE= -I.
LIBS = -lm
FLAG = -Wall -Werror 
OBJ = xx.o xx.o xx.o
BIN = xxx

# 执行目标
all:$(OBJ)
	$(CC) $(OBJ) $(LIBS) -o $(BIN)
%.o:%.c
	$(CC) -c $(FLAG) $(STD) $(INCLUDE) $< -o $@

# 清理目标文件、编译结果的执行目标
clean:
	rm $(OBJ) $(BIN)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值