Linux 程序员必须掌握 Makefile工程项目管理器



概述

在这里插入图片描述

规则、目标文件和依赖文件

在这里插入图片描述

示例

在这里插入图片描述

伪目标

在这里插入图片描述

变量

在这里插入图片描述
在这里插入图片描述


预定义变量

在这里插入图片描述
在这里插入图片描述

自动变量

在这里插入图片描述

使用了变量的 Makefile 示例

在这里插入图片描述

通配符和模式匹配

在这里插入图片描述

内置函数

在这里插入图片描述

循环

在这里插入图片描述

指定makefile名字的make操作

在这里插入图片描述

两种十分通用的 Makefile 演示


第一种: 同时编译多个目标文件,并分别生成多个可执行程序

CC := gcc
  2 SRCS := $(wildcard *.c)
  3 BINS := $(SRCS:%.c=%)
  4 all: $(BINS)
  5 %: %.c
  6     $(CC) $< -o $@
  7     .PHONY:clean
  8 clean:                                                                                                                                              
  9     rm $(BINS)
 10 
~                        

第二种: 同时编译多个目标文件,生成一个可执行程序

  2 srcfiles := $(wildcard *.c)
  3 OBJS:=$(patsubst %.c, %.o,$(srcfiles))
  4 CC:=gcc
  5 $(out):$(OBJS)
  6     $(CC) $^ -o $@
  7 %.o:%.c  # 在依赖文件中找到后缀为.o 的文件,之后根据.o 文件的文件名找同名的.c文件 。使用*c,会在当前目录进行匹配
  8     $(CC) -c $^ -o $@                                                                                                                               
  9 .PHONY:clean rebuild
 10 rebuild: clean main
 11 clean:
 12     rm -rf *.o $(out)

猜你喜欢

转载自blog.csdn.net/chongzi_daima/article/details/107967446