Liunx之编译脚本Makefile三层

前言

该文章只记录一个最基本的 Makefile 的实现,在阅读该文章前,我假设读者已经掌握了 Liunx 之编译脚本 Makefile 介绍 知识点

害,还是好伤元气,一点都不想写这无意义的玩意儿,前方路漫漫,一步一步来吧 ~~~

这只是一个非常小的 Demo 项目,在实际中,我们写的项目一般都比这个 Demo 复杂了 N 次方的。

三层功力是指 隐式规则 + 显式规则 + 变量定义,具体解释已经在Liunx 之编译脚本 Makefile 介绍中说明

测试项目说明
/*
project name : makefile_unit_testing
compile      : gcc
system       : ubuntu 18.04.4 -64bit
source level :
           main.c
           unit_log.h
           unit_log.c
*/
提醒

大可不必强迫自己去做一些伤元气的事,或者写一些伤元气的代码。一切为了部落,呼哈 ~~

目录
Makefile 之三层功力代码实现
# 构建的项目输出名称
build_object = makefile_unit_testing

# 依赖的二进制文件集合
objects := unit_log.o main.o

$(build_object): $(objects)
gcc -o $(build_object) $(objects)

unit_log.o: unit_log.c
gcc -c unit_log.c -o unit_log.o

main.o: main.c
gcc -c main.c -o main.o

clean:
rm -rf *.i *.s *.o makefile_unit_testing

Makefile 测试结果

  1. 查看当前项目的目录
  2. make 之后 makefile 执行的流程
  3. 执行 make 构建输出的文件