makefile中关于$$和$$$$详解 您所在的位置:网站首页 rank函数中的$怎么输入 makefile中关于$$和$$$$详解

makefile中关于$$和$$$$详解

2023-11-23 14:41| 来源: 网络整理| 查看: 265

$$

$$ 表示真实的 $ 字符,因为$字符已经被makefile用来做变量引用,如$(MAKE),所以需要用$$ 表示真实的 $。

 

$$$$

$$$$ 在shell中代表进程号

 

在网上看到$$$$的解释好多都是生成随机数,其实根本不是的!太坑了。

 

上面所述,单个$已经被占用了,所以在Makefile中想要表示单个$,就只能用$$表示,同理,如果想要表示两个$怎么办呢?那不就是两个$$凑在一起,成为$$$$了嘛。所以实际$$$$代表的是真正的$$而已。

在shell中$$的代表的正是进程号。

 

 

关于$$和$$$$的解释查看如下实例:

seq.d : seq.c

    @set -e; \

    gcc -MM $< > $@.$$$$; \

    sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \

    rm -f $@.$$$$

-include seq.d

 

第一个命令@set -e

@关键字告诉make不输出该行命令;set -e的作用是,当后面的命令的返回值非0时,立即退出。

那么为什么要把几个命令写在”同一行“(是对于make来说,因为\的作用就是连接行),并用分号隔开每个命令?因为在Makefile这样做才能使上一个命令作用于下一个命令。这里是想要set -e作用于后面的命令。

 

第二个命令gcc -MM $< > $@.$$$$

作用是根据源文件生成依赖关系,并保存到临时文件中。内建变量$ $@; \:

https://www.codeleading.com/article/54063162563/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有