0
点赞
收藏
分享

微信扫一扫

MakeFile的使用

颜娘娘的碎碎念 2022-03-20 阅读 50
gnu服务器

makefile 三个要素

 简单的命令终端上输出:test可以是目标也可以是依赖,所以all依赖test

 1.编译简单两个c文件:

2.1.变量(语言的变量,都懂)

2.2.自动变量 :以上变量不好的地方就是,如果我们改了文件名字就需要进去改makefile

先介绍语法:

 2.3 常用的两个函数 wildcard(通配符)   patsubst(替换)

.PHONY:clean

CC = gcc
RM = rm
EXE = simple
SRCS = $(wildcard *.c)   #匹配所有的c文件名
OBJS = $(patsubst %.c,%.o,$(SRCS)) #把所有匹配到的c文件替换成.o文件名

$(EXE) : $(OBJS)
	$(CC) -o $@ $^

%.o: %.c
	$(CC) -o $@ -c $^

clean:
	$(RM) $(EXE) $(OBJS)

 2.3.2 addperfix 函数 :用来给字符串中的每个子串前加上一个前缀,形式是:$(addprefix   prefix,   names)

.PHONY:all

without_dir = foo.c foo2.c main.o

with_dir  := $(addprefix  objs/, $(without_dir))

all:
    @echo $(with_dir)

#这样就可以访问就能拼接到别的文件夹去拿别的文件过来编译了

 2.3.3 filter  从一个字符串中,留下满足的字符串,其形式是: $(filter  pattern..., text)。同伴filter-out把匹配的给去除掉   多个是以空格隔开的

.PHONY:all

without_dir = $(wildcard *)

with_dir  := $(filter  %.c %.s, $(without_dir))

all:
        @echo $(with_dir)

举报

相关推荐

0 条评论