教你写Makefile

Makefile有简单写法和复杂写法,先上复杂写法。

SRC = main.cpp
CC = g++

test:test.o
        ./test.o

test.o:$(SRC)
        $(CC) $(SRC) -o test.o
clean:
        rm -rf *.o test.o

简单写法:

#1.使用变量改进makefile

#2.使用静态模式规则,简化makefile

#3.使用伪目标加上clean

#4.引进wildcard函数,自动扫描当前目录下的源文件

#5.加入自动规则依赖

#定义可执行文件变量
executable := complicated
#引进wildcard函数扫描源文件,定义源文件列表变量
sources := $(wildcard *.c)
#使用变量的引用替换,定义object文件列表
objects := $(sources:.c = .o)
#使用变量的引用替换,定义依赖描述文件列表
deps := $(soueces:.c = .d)
#定义编译命令变量
CC := gcc
RM := rm -rf 
#终极目标规则,生成complicated可执行文件
$(executable): $(objects)
#使用自动化变量改造我们的编译命令
	$(CC) -o $@ $^
#静态模式规则简化main.o complicated.o 生成规则
$(objects): %.o : %.c
	$(CC) -o $@ -c %<
#使用伪目标添加clean规则
.PHONY: clean
clean:
	$(RM) $(executable) $(objects) $(deps)
#自动规则依赖
include $(deps)
$(deps): %.d : %.c
	$(CC) -MM $< > $@

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值