Makefile简单使用

Makefile 文件

Makefile 文件的配置
makefile: 管理项目。

命名:makefile Makefile --- make 命令

1 个规则:

目标:依赖条件
(一个tab缩进)命令

1. 目标的时间必须晚于依赖条件的时间,否则,更新目标

2. 依赖条件如果不存在,找寻新的规则去产生依赖条件。

ALL:指定 makefile 的终极目标。


2 个函数:

src = $(wildcard ./*.c): 匹配当前工作目录下的所有.c 文件。将文件名组成列表,赋值给变量 src。 src = add.c sub.c div1.c

obj = $(patsubst %.c, %.o, $(src)) : 将参数3中,包含参数1的部分,替换为参数2。 obj = add.o sub.o div1.o

clean: (没有依赖)

-rm -rf $(obj) a.out “-”:作用是,删除不存在文件时,不报错。顺序执行结束。

3 个自动变量:

$@: 在规则的命令中,表示规则中的目标。

$^: 在规则的命令中,表示所有依赖条件。

$<: 在规则的命令中,表示第一个依赖条件。如果将该变量应用在模式规则中,它可将依赖条件列表中的依赖依次取出,套用模式规则。

模式规则:

%.o:%.c
gcc -c $< -o %@

静态模式规则:

$(obj):%.o:%.c
gcc -c $< -o %@

伪目标:

.PHONY: clean ALL

参数:
-n:模拟执行make、make clean 命令。 make clean -n

-f:指定文件执行 make 命令。 xxxx.mk

	makefile版本1
	
    a.out:test.c
        gcc test.c add.c sub.c -o a.out	
	
	
	
	#src = $( wailcard *.c  )
    #obj = $( patsubst %.c,%.o,$(src))

    makefile 版本2
 
    a.out:test.o add.o sub.o
        gcc test.o add.o sub.o -o a.out

    test.o:test.c
        gcc -c test.c -o test.o

    sub.o:sub.c
        gcc -c sub.c -o sub.o

    add.o:add.c
        gcc -c add.c -o add.o
		
		
    makefile 版本3
	
	src = $(wildcard *.c)
	obj = $(patsubst %.c,%.o,$(src))

	a.out:test.o add.o sub.o
			gcc $^ -o $@

	test.o:test.c
			gcc -c $^ -o $@

	sub.o:sub.c
			gcc -c $^ -o $@

	add.o:add.c
			gcc -c $^ -o $@

	clean:
			-rm -rf $(obj) $(ALL)

	
	makefile 版本四
	
	
    ALL=a.out
    src = $(wildcard ./*.c)
    obj = $(patsubst %.c,%.o,$(src))
    
    a.out:$(obj)
            gcc $^ -o $@
    
    %.o:%.c
            gcc -c $< -o $@
    
    
    clean:
            -rm -rf $(obj) $(ALL)

  

原文地址:https://www.cnblogs.com/love-life-insist/p/12961484.html