[Makefile] include 关键字

在 Makefile 中,include 关键字的作用是引入其他文件的内容,通常用于将其他 Makefile 文件(通常是头文件)的内容包含到当前的 Makefile 中。这样可以实现模块化管理和代码重用。

include使用

使用 include 关键字的语法如下:

include <filename>

其中 <filename> 是要包含的文件名,可以是相对路径或绝对路径。

include 的作用主要有以下几点:

  1. 模块化管理:通过将一些公共的规则、变量或函数定义放在单独的文件中,可以提高 Makefile 的可读性和可维护性。通过在不同的 Makefile 中使用 include 来引入这些公共部分,可以实现模块化管理。

  2. 代码重用:某些项目可能存在多个相关的 Makefile,它们可能有一些公共的部分,使用 include 可以将这些公共部分抽取出来,避免重复编写相同的代码,提高代码的重用性。

  3. 定制化配置:通过 include 可以方便地引入不同的配置文件,从而实现针对不同环境或需求的定制化配置。

下面是一个简单的示例,展示了在 Makefile 中使用 include 引入另一个文件的内容:

# common.mk 文件
CC = gcc
CFLAGS = -Wall


# 其他公共规则和变量定义
COMMON_VAR := value
# 主Makefile
include common.mk

all:
    @echo "Building all targets"

clean:
    @echo "Cleaning up"

# 使用common.mk 定义的变量
target:
    @echo $(COMMON_VAR)

在这个示例中,common.mk 文件中定义了一些公共的变量和规则,主 Makefile 使用 include 引入了这些内容,从而实现了代码的重用和模块化管理。


变量定义 :=

VARIABLE_NAME := value

其中:

  • VARIABLE_NAME 是变量的名称,可以是任何合法的标识符;
  • value 是变量的值。

:= 是 Makefile 中的赋值运算符,用于将右侧的值赋给左侧的变量。相比其他赋值运算符(如 =),:= 有以下优点:

  1. 延迟求值:当使用 := 进行赋值时,变量的值不会在定义时立即求值。而是在变量被使用时才会求值,这样可以避免一些问题,例如递归变量的无限循环等。

  2. 只展开一次:使用 := 定义的变量,在被使用时只会被展开一次,而其他赋值形式可能会多次展开同一个变量,导致意外的结果。

因此,使用 := 进行赋值是比较常见的做法,特别是对于需要使用高级功能的 Makefile。

下面是一个简单的示例,展示了如何在 Makefile 中使用 := 进行变量定义:

COMMON_VAR := common_value

target1: 
    @echo "Value of COMMON_VAR in target1 is $(COMMON_VAR)"

target2:
    @echo "Value of COMMON_VAR in target2 is $(COMMON_VAR)"

在这个示例中,我们定义了一个名为 COMMON_VAR 的变量,并在两个目标中使用了它。在每个目标的执行过程中,该变量的值都是相同的。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值