首页 > 其他分享 >18_makefile基本语法(下)

18_makefile基本语法(下)

时间:2024-03-31 22:13:32浏览次数:22  
标签:函数 18 makefile 如下 语法 所示 test 格式

makefile基本语法(下)

1.wildcard 函数

格式:$(wildcard PATTENR)
功能:展开指定的目录
举例:
在/home/test 目录有一个a.c 的c 文件和一个test 的文件夹,在/ home/test/test 文件夹下有一个b.c 的文件。

image-20240310194350450

​ 我们在当前目录下创建的makefile 里面写下如下代码,echo 前面加了@符号,echo 这个命令就不显示:

image-20240310194355440

执行结果:

image-20240310194401172

​ 我们得到了./a.c 和./test/b.c ,所以wildcard 函数会把我们指定的./和./test/目录下的c文件展开。

2.notdir 函数

格式:$(notdir $(var))
功能:去掉路径。
举例:
我们在上面的makefile 中加上以下代码,因为上面的例子我们得到结果是./a.c和./test/b.c 是有路径的,我们可以直接使用这个变量。

image-20240310194522594

执行结果:

image-20240310194527319

因为notdir 函数可以去掉路径,所以/a.c 和./test/b.c 去掉路径就得到了a.c 和b.c

3.dir 函数

格式:$(dir <names...>)
功能:取出目录,这里的目录指的是最后一个反斜杠/之前的部分,如果没有反斜杠/就返回当前。
举例:
我们在上面的例子中加入以下代码,如下图所示:

image-20240310194538313

因为var2 的值为./a.c 和./test/b.c,所以取出目录就是./和./test,如下图所示:

image-20240310194545213

4.patsubst 函数

格式:$(patsubst 原文件,目标文件,文件列表)
功能:替换文件后缀
举例
我们在上面的例子中加入以下代码,如下图所示:

image-20240310194650079

这个函数会把var1 变量的a.c 和b.c 的.c 后缀替换为.o,如下图所示:

image-20240310194657449

替换我们可以使用这个函数,也可以使用$(var:a=b)这个格式来替换,我们来改一下上面的代码,如下图所示:

image-20240310194706759

运行结果如下:

image-20240310194714384

5.foreach 函数

格式:$(foreach <var>,<list>,<text>)
功能:把参数<list>中的单词逐一取出放到参数<var>所指定的变量中,然后再执行<text>所包含的表达式。每一次<text>会返回一个字符串
举例:

image-20240310194743052因为var2 变量的值为./和./test,所以先把./取出来放在n 变量,然后在执行wildcard 函数取出./和./test 下面的c 文件的路径。所以执行结果如下图所示:

image-20240310194753795

标签:函数,18,makefile,如下,语法,所示,test,格式
From: https://www.cnblogs.com/mzx233/p/18107357

相关文章

  • 17_makefile基本语法(上)
    makefile基本语法(上)一.设置vim首行缩进vi/etc/vim/vimrc(rc结尾的一般为配置文件)输入settabstop=4,保存后退出即可。便发现vim打开后的缩进变成4个空格了二.Makefile基本语法语法格式:目标:依赖(tab)命令举例:目标:all依赖:空命令:gcchello.c-ohello上面的例子也......
  • Python基础语法(四)
    目录一.while循环的基础语句二.while循环案例三.while循环的嵌套四.while循环嵌套的案例一.while循环的基础语句1.while的条件需得到布尔类型,True表示继续循环,False表示结束循环。2.需要设置循环终止的条件,如i+=1配合i<100,就能确保100次后停止,否则将无限循环。3......
  • markdown语法规则
    Markdown语法1标题#一级标题##二级标题###三级标题####四级标题#####五级标题######六级标题注意:#与后面的文字需要空格备注:注释的语法为>文字(>与文字之间需要有空格)2代码代码块:​```c#include<stdio.h>intmain(){return0;}​```行......
  • 蓝桥杯2018年第十三届省赛真题-复数幂
    一、题目复数幂设i为虚数单位。对于任意正整数n,(2+3i)^n的实部和虚部都是整数。求(2+3i)^123456等于多少?即(2+3i)的123456次幂,这个数字很大,要求精确表示。答案写成"实部±虚部i"的形式,实部和虚部都是整数(不能用科学计数法表示),中间任何地方都不加空格,实部为正时前面......
  • 二、Java语法基础
    1、Java语言的关键字、标识符及命名规范1)java关键字2)标识符3)JAVA中的命名规范 包名的命名规范:域名.公司名称.项目名称.模块名称 类的命名规范:首字母大写,第二个单词的首字母大写,以此类推。2、进制间的转换(二进制、十进制)1)十进制->二进制 采用除2取余算法,一直除......
  • Hive-技术补充-ANTLR的真实语法世界
    一、上下文上一篇博客<Hive-技术补充-ANTLR语法编写>,我们了解了如何使用ANTLR语法来表达词法结构和语法结构,下面我们循循渐进的处理身边用过的一些文件或语言:CSV、JSON、DOT、Cymbol、R 二、解析CSV文件有这样一份csv文件vidata.csvDetails,Month,AmountMidBonus,Ju......
  • 18day-19day-2.2.CSS实战与提高
    2.2.CSS实战与提高练习11:制作开心餐厅页面CSS/*层次选择器*/p{font-size:14px;}/*body后代h2字体16px*/bodyh2{font-size:16px;}/*第一个h2颜色变为红色*/.firstH2{color:red;}/*第一个h2后面的通用兄弟元素h2变为蓝色*/.firstH2~h2{......
  • 矩阵置零 - LeetCode 热题 18
    大家好!我是曾续缘......
  • neo4j使用详解(六、cypher常用函数语法——最全参考)
    Neo4j系列导航:neo4j及简单实践cypher语法基础cypher插入语法cypher插入语法cypher查询语法cypher通用语法cypher函数语法4.常用函数主要包括谓词函数(断言函数)、标量函数、聚合函数、字符串函数以及集合函数4.1.谓词函数(断言函数)谓词函数返回true或者false,主要......
  • 搜索引擎语法
    百度语法1.搜索A屏蔽B【A-B】这里的'-'前要有空格2.搜索包含A的信息或者包含B的信息【A|B】3.将搜索范围限定在网页标题【Aintitle:B】也就是必须有A且B的内容必须出现在标题中;'intitle:'后不能有空格4.将搜索范围界定在指定网站中【Asite:站点域名】也就是站点域名......