Makefile文件中,两个$的变量变量$$Xxx 与一个$的变量 $Xxx的区别

原文地址:Makefile文件中,两个的变量变量Xxx 与一个的变量 $Xxx的区别

Makefile 中的变量引用

Makefile 中,$ 符号用于变量替换,但它的使用方式有一些细微的区别:

单个 $ 符号($Xxx

  • 用途 :用于引用 Makefile 中定义的变量。

  • 用法$ 后面可以跟变量名,通常用括号或花括号括起来以明确变量名的边界。

  • 示例

    makefile 复制代码
    VAR = value
    all:
        echo $(VAR)

    在这个例子中,$(VAR) 会被替换为 value

$ 符号($$Xxx

  • 用途:用于在 Makefile 中传递给 shell 的命令中引用 shell 变量。

  • 用法$$ 会被 make 解析为单个 $,从而在 shell 中使用。

  • 示例

    makefile 复制代码
    all:
        echo $$PATH

    在这个例子中,$$PATH 会被 make 解析为 $PATH,从而在 shell 中输出环境变量 PATH 的值。

具体区别

  • $Xxx:用于 Makefile 变量替换。make 会在执行命令之前将其替换为变量的值。
  • $$Xxx:用于传递给 shell 的命令中引用 shell 变量。make 会将 $$ 转换为 $,从而在 shell 中使用。

例子

假设你有一个 Makefile 如下:

makefile 复制代码
VAR = Hello

all:
    # 使用 Makefile 变量
    echo $(VAR)
    # 使用 shell 变量
    echo $$USER
  • echo $(VAR):make 会将 $(VAR) 替换为 Hello,然后执行 echo Hello
  • echo $$USER:make 会将 $$USER 转换为 $USER,然后 shell 会替换 $USER 为当前用户的用户名。

总结

  • 使用 $ 来引用 Makefile 中的变量。
  • 使用 $$ 来引用 shell 中的变量,以确保在传递给 shell 时保留单个 $ 符号。
相关推荐
笑川 孙21 天前
为什么Makefile中的clean需要.PHONY
开发语言·c++·面试·makefile·make·技术
浅安的邂逅1 个月前
Linux Makefile-概述、语句格式、编写规则、多文件编程、Makefile变量分类:自定义变量、预定义变量
linux·c语言·vim·makefile·gcc
xyd陈宇阳1 个月前
Linux 入门五:Makefile—— 从手动编译到工程自动化的蜕变
linux·运维·服务器·makefile
不摆烂选手1 个月前
Ubuntu之Makefile入门
linux·ubuntu·makefile·正点原子imx6ull学习笔记
azaz_plus1 个月前
Linux makefile的一些语法
linux·makefile
witton1 个月前
MinGW下编译ffmpeg源码时生成compile_commands.json
ffmpeg·json·makefile·mingw·调试·compile_command·remake
一朵忽明忽暗的云2 个月前
【Day9】make/makeFile如何让项目构建自动化起飞
linux·makefile·项目自动化构建工具
NullPointerExpection2 个月前
ubuntu20.04已安装 11.6版本 cuda,现需要通过源码编译方式安装使用 cuda 加速的 ffmpeg 步骤
c++·ffmpeg·makefile·cuda
半夏云流3 个月前
CMake常用命令指南(CMakeList.txt)
linux·makefile·cmake
利刃大大4 个月前
【Linux入门】2w字详解yum、vim、gcc/g++、gdb、makefile以及进度条小程序
linux·c语言·vim·makefile·gdb·gcc