legongju.com
我们一直在努力
2025-01-12 03:56 | 星期天

Makefile中的变量如何定义和使用

在Makefile中,变量是一种存储值的方式,可以在整个Makefile中重复使用

  1. 定义变量:

在Makefile中,使用等号(=)或者冒号等号(:=)来定义变量。等号表示懒惰求值(lazy evaluation),即只有在使用变量时才会计算其值;冒号等号表示立即求值(immediate evaluation),即在定义变量时就计算其值。

# 使用等号定义变量(懒惰求值)
variable1 = value1

# 使用冒号等号定义变量(立即求值)
variable2 := value2
  1. 使用变量:

要在Makefile中使用变量,只需在变量名前加上美元符号($)和括号(())。

# 使用变量
target:
    @echo $(variable1)
    @echo $(variable2)
  1. 修改变量值:

在Makefile中,可以使用等号(=)或者冒号等号(:=)来修改变量的值。注意,这里的行为与定义变量时略有不同。使用等号(=)时,如果变量已经被定义过,那么新值将覆盖旧值;使用冒号等号(:=)时,如果变量已经被定义过,那么新值将被追加到旧值之后。

# 修改变量值
variable1 = new_value1
variable2 := new_value2
  1. 删除变量:

要删除变量,可以使用undefine指令。

# 删除变量
undefine variable1
undefine variable2
  1. 条件语句中的变量:

在Makefile的条件语句(如ifeqifneqifdefifndef)中,可以使用变量来进行比较。

# 条件语句中的变量
ifeq ($(variable1), value1)
    # 当variable1等于value1时执行的代码
endif
  1. 函数和变量:

Makefile中的函数可以接受变量作为参数,并返回一个新的值。

# 函数和变量
variable3 = $(subst old,new,$(variable1))

这里,$(subst old,new,$(variable1))函数将variable1的值中的所有"old"替换为"new",并将结果赋值给variable3

未经允许不得转载 » 本文链接:https://www.legongju.com/article/102938.html

相关推荐

  • 在Linux运维中通配符的重要性及实践案例

    在Linux运维中通配符的重要性及实践案例

    在Linux运维中,通配符扮演着极其重要的角色,它们能够极大地提升命令行操作的效率和灵活性。以下是对Linux运维中通配符的重要性及实践案例的详细分析:
    通...

  • 详解Linux通配符的组合使用方法

    详解Linux通配符的组合使用方法

    在 Linux 系统中,通配符是一种用于匹配文件名或路径的特殊字符 星号(*):匹配任意长度的任意字符。例如,ls *.txt 会列出当前目录下所有以 .txt 结尾的文件。...

  • linux vi怎么输入命令

    linux vi怎么输入命令

    在 Linux 系统中,使用 vi 编辑器时,可以通过以下步骤输入命令: 打开终端并输入 vi 文件名 以打开或创建一个文件。例如,要编辑名为 “example.txt” 的文件,...

  • linux怎么查看系统语言环境

    linux怎么查看系统语言环境

    在Linux系统中,可以通过以下几种方法查看系统语言环境: 使用locale命令: locale 这个命令会显示当前系统的所有本地化设置,包括语言、字符集、时间格式等。其...

  • 如何编写可读性强的switchcase语句

    如何编写可读性强的switchcase语句

    为了编写可读性强的 switch-case 语句,请遵循以下建议: 使用大括号({}):在每个 case 和 default 语句中使用大括号,这将使代码更加清晰和易于理解。 缩进:...

  • TreeNode在图形界面中的应用场景

    TreeNode在图形界面中的应用场景

    TreeNode 是一个用于表示树形结构中节点的类 文件系统:在文件浏览器或文件管理器中,可以使用树形结构来展示文件和文件夹。每个节点可以表示一个文件或文件夹,...

  • 如何优化TreeNode的内存占用

    如何优化TreeNode的内存占用

    要优化TreeNode的内存占用,可以采取以下策略: 使用更小的数据结构:在某些情况下,可以考虑使用更小的数据结构来表示节点。例如,如果你不需要存储额外的信息,...

  • 如何实现TreeNode的递归遍历

    如何实现TreeNode的递归遍历

    要实现TreeNode的递归遍历,你可以使用深度优先搜索(DFS)或广度优先搜索(BFS)算法。这里我将分别介绍这两种方法的实现。
    首先,我们需要定义一个TreeNo...