Makefile

本文介绍了MakeFile在工程编译中的作用,通过时间戳判断文件是否需编译,详细讲解了如何运行Makefile、目标与依赖的关系,以及变量的使用和系统预定义自动化变量。还提到了通用版本的Makefile编写原则。
摘要由CSDN通过智能技术生成

1.Make File 文件

帮助我们更快地编译工程文件, 主要在编译的过程中会判断是否需要编译某些.c文件 。

  • 根据文件的时间戳来进行判断

依赖于目标:

目标与依赖的关系是相对的,

2. 如何运行Mkefile

$ sudo apt install make  // 先安装make 

make

注意:

  • 在使用make的时候 如果没有指定目标则 , 第一个将成为这当个Makefile的最终目标
  • 如果目标已经存在,则需要比较目标和依赖的时间关系,
    • 如果依赖不存则不需要比较导致不执行
    • 如果依赖存在则比较时间新则需要更新,反之则不需要更新
  • 依赖于目标是相互的,比如上面代码中 test2他既是 test的依赖, 也是test3的目标

3.变量

  • 在我们使用命令 make 的时候会读取 MakeFile 文件的内容进行展开,类似于宏在预处理是的情况。
  • 变量可以用来表示一个列表 , 类似于C语言中的 字符串指针数组 。
  • 变量名不能包括“:”、“#”、“=”、前置空白和尾空白的任何字符串。
  • 变量名是大小写敏感的。变量“foo”、“Foo”和“FOO”指的是三个不同的变量。
  • 系统预先定义好了一些自动化变量 :“
  • 变量的引用跟Shell脚本类似,使用美元符号和圆括号 $(Foo) 引用变量 Foo
TAG=./BIN/main
SRC=./SRC/main.c
OBJ=./SRC/main.o
CONFIG=-I./INC -L./LIB -lmaster


$(TAG):$(OBJ)
    $(CC) $(OBJ) -o $(TAG) $(CONFIG)

$(OBJ):$(SRC)
    $(CC) $(SRC) -o $(OBJ) -c $(CONFIG)

       

3.1系统预定义变量

3.2自动化变量

4.Makefile 通用版本:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值