makefile自动变量

Makefile 基础(一) —— 自定义变量、预定义变量、自动变量 阅读详情

/***********************************************/
=  递归展开变量
:= 立即展开变量
---------------------------------------------------
$@  表示一个规则中的目标文件(*.o文件)
      file1.o file2.o:head.h
       cp $@ /backup
    相当于   file1.o:file1.c head.h
   cp $@ /backup   
   gcc -c file1.c -o file1.o
  file2.o:file2.c head.h
   cp $@ /backup
   gcc -c file2.c -o file2.o
--------------------------------------------------
$%  当规则的目标文件是一个静态库文件时,$%代表静态库中的一个成员名。
 如某条规则 的目标是 foo.a(bar.o), 则$%的值是bar.o,而$@的值是foo.a
----------------------------------------------------
$<  规则中的第一个依赖文件名。如果使用了隐含规则,那么&<的值为由隐含规则引入的第一个依赖文件名。
 file1.o file2.o:head.h
  cp $@ /backup
 当file1.o过时时,该规则相当于:
 file1.o:file1.c head.h
  cp $@ /backup
  gcc -o file1.o -c file1.c
----------------------------------------------------
$>  与$%一样,只适用于库文件名,它的值是库名。
----------------------------------------------------
$?  所有比目标文件新的依赖文件列表,以空格分开。如果目标是静态库文件名,代表的是库成员(.o文件)
-----------------------------------------------------
$^  规则的所用依赖文件列表,使用空格分开;如一个文件在依赖文件中出现多次,只列出一次;
-----------------------------------------------------
$+  规则的所用依赖文件列表,使用空格分开;如一个文件在依赖文件中出现多次,列出多次;
-----------------------------------------------------
$*  目标文件去掉后缀后的名称。如某个规则的目标文件是 file.o,则 $* 是 file
 file1.o file2.l:head.h
  gcc -c $* -o $@
-----------------------------------------------------
以上自动变量只适用于命令中,不能用在目标文件和依赖文件中,如想用在目标文件和依赖文件中,则前再加一个$
如:
 file1.o file2.o:$$.c head.h
  gcc -o $*.o -c $@
 运行make,解释含用隐含规则的mikefile时,当处理的目标文件为file1.o时,$$*和$*代表file1;
 当处理的目标文件是file2.o时,$$*和$*代表file2
 相当于:
  file1.o:$$*.c head.h
   gcc -c $*.c -o $@
  file2.o:$$* head.h
   gcc -c $*.c -o $@
  
 或者: 
  file1.o:file1.c head.h
   gcc -c file1.c -o file2.o
  file2.o:file2.c head.h
   gcc -c file2.c -o file2.o
------------------------------------------------------
 
 

用 CL_SALV_TREE 把层级数据做成一棵会呼吸的 ABAP ALV 树:从类继承扫描到事件交互的完整拆解 本文介绍了SAP ABAP中使用CL_SALV_TREE实现树形ALV报表的方法。该技术将层级数据(如类继承关系)以可展开/折叠的树形结构展示,解决了传统ALV Grid无法直观显示层次结构的问题。核心实现采用"数据表+层级表"分离的设计模式:数据表存储节点业务信息,层级表维护父子关系。通过add_node方法动态构建树形结构,支持设置节点文本、图标和事件。文中提供了完整示例代码,演示了如何递归扫描ABAP类继承关系并构建树形ALV,这种技术特别适用于展示类族谱、权限树等层级数据,能显著 阅读详情

相关推荐

用STM32F103C8T6和TB6612驱动模块,从零搭建一辆能避障循迹的智能小车(附完整代码)

本文详细介绍了如何使用STM32F103C8T6和TB6612驱动模块从零搭建一辆能避障循迹的智能小车。内容涵盖硬件选型、电路设计、底层驱动配置以及智能行为算法实现,并附有完整代码示例,帮助开发者快速掌握嵌入式开发的核心技术。

weixin_42641741的博客 446

makefile之自动化变量

makefile之自动化变量

techenliu的博客 936

Word公式一键转MathType保姆级教程(附omml2mml.xsl报错终极解决方案)

本文提供Word公式一键转MathType的保姆级教程,重点解决常见的omml2mml.xsl报错问题。通过详细分析报错原因、官方解决方案实操步骤及转换后格式优化技巧,帮助用户高效完成公式转换,适用于科研论文和商业文档编辑。

weixin_30082367的博客 555

Makefile中的自动化变量说明

Makefile文件中“$@、$

CyuAlibi的博客 672

K-GAS解读(08)

大众kgas标准,大众及其供应商kgas

m0_51113317的博客 598

当windows安装git时出现以下错误提示

Windows安装Git时出现多个系统配置设置失败错误(exit code 4294967295),提示包括无法设置textconv、LFS过滤器和SSL等配置项。关键问题在于scalar.exe版本不兼容,系统提示"该版本的scalar.exe与你运行的Windows版本不兼容"。解决方案是检查程序版本是否正确,下载与Windows系统兼容的正确版本重新安装即可。

沧澜的博客 1875

Makefile中的自动化变量

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 2253

学习十八-UJA107xA简介及移植-0

目录 1、UJA107xA系列手册 1、介绍 2.2.1 BAT引脚功能 2.4.1 V1、V2稳压器 2.5.1 CAN收发器 3.1 Startup Operation 3.2 Normal Operation 5.1 Attached Files 5.2 NXP UJA107xA Example Software 6、main() 1、UJA107xA系列手册 看完手册关于使用还是没有头绪的,只是想SPI发送指令将V2驱动起来,进而驱动起来CAN收...

m0_56344230的博客 1707

Makefile基础教学(预定义变量)

上篇文章讲解到了变量的使用,这篇文章继续讲解预定义变量。除了上述这些变量之外,还有许多其他的变量可以在 Makefile 中使用,具体可以参考 GNU Make 的官方文档。通过引用这些变量,在 Makefile 中可以更加灵活地处理命令和操作。

m0_49476241的博客 1223

【ESP32设备通信】-LoRa通信

在本文中,我们将使用 Arduino IDE 将 ESP32 与 LoRa SX1278 (Ra-02) 模块连接起来。 我们将创建一个真实的示例项目,通过 LoRa 无线打开/关闭 LED 进行演示。

视觉与物联智能 1890

Mac安装Typescript报错

根本原因是系统级目录的权限限制。推荐通过修改目录权限或使用nvm彻底解决问题。

江拥羡橙的博客 210

makefile 自动变量

 $@ 代表规则中的目标文件名。如果目标是一个文档(Linux中,一般称.a文件为文档),那么它代表这个文档的文件名。在多目标的模式规则中,它代表的是哪个触发规则被执行的目标文件名。 $% 规则的目标文件是一个静态库文件时,代表静态库的一个成员名。例如,规则的目标是“foo.a(bar.o)”,那么,“$%”的值就为“bar.o”,“$@”的值为“foo.a”。如果目标不是函数库文件,其值为空。

aquolee的专栏 3053

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Makefile中3个常用自动化变量

在Makefile,有三个常用也很好用的自动化变量:$@、$^、$&lt;,所谓自动化变量是在模式规则中定义的一系列文件自动挨个的去除,直至所有的符合模式的文件都取完。这么说可能比较绕,我们可以简单直白的理解,我们写的应用程序,稍微简单的也要有几个文件(.c、.h等),那么复杂的可能有几百,几千,甚至几十万(kernel),我们在编写Makefile时,如果逐个文件去编译,链接,那是绝不可...

猪哥的专栏 3439

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

MakeFile 自动变量

自动变量假设您编写一个编译‘.c’文件生成‘.o’文件的规则:您怎样编写命令‘CC’,使它能够操作正确的文件名?您当然不能将文件名直接写进命令中,因为每次使用隐含规则操作的文件名都不一样。 您应该使用make的另一个特点,自动变量。这些变量在规则每次执行时都基于目标和依赖产生新值。例如您可以使用变量‘$@’代替目标文件名,变量‘$<’代替依赖文件名。 下面是自动...

Mike777777的博客 179

Makefile自动化变量

自动化变量可以理解为由 Makefile 自动产生的变量。在模式规则中,规则的目标和依赖的文件名代表了一类的文件。规则的命令是对所有这一类文件的描述。我们在 Makefile 中描述规则时,依赖文件和目标文件是变动的,显然在命令中不能出现具体的文件名称,否则模式规则将失去意义。模式规则命令中该如何表示文件呢?就需要使用“自动化变量”,自动化变量的取值根据执行的规则来决定,取决于执行规则的目标文件和依赖文件。下面是对所有的自动化变量进行的说明: 自动化变量 说明 $@ 表示规则的目标文件名。

qq_42746890的博客 980

makefile自动变量与隐晦规则推导

博客搬家,原地址:https://langzi989.github.io/2017/09/20/makefile自动变量与隐晦规则推导/ makefile的使用可以大大简化程序编译的过程,不过对于新手来说makefile的执行规则理解起来还是很让人迷糊的。其中最重要的原因是makefile中使用了大量的隐晦规则和自动变量来简化makefile的编写.本节将记录一下makefile自动变量和隐晦规则...

langzi989的专栏 3028

Makefile中常用自动变量

自动变量 含义 $* 不包含扩展名的目标文件名称 $+ 所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件 $ 第一个依赖文件的名称 $? 所有时间戳比目标文件晚的依赖文件,并以空格分开 $@ 目标文件的完整名称 $^ 所有不重复的依赖文件,以空格分开 $% 如果目标是归档成员,则该变量表示目标的归档成员名称 实例: OBJS = kang.o yul

tong646591的专栏 3387

Makefile变量的定义与使用与自动化变量

变量对于我们来说是不陌生的,在学习各种编程语言时会经常用到。就拿C语言来说,变量的使用是十分常见的,变量可以用来保存一个值或者是使用变量进行运算操作。Makefile 中的变量也是这样,我们可以利用它来表示某些多处使用而又可能发生变化的内容,不仅可以节省重复修改的工作,还可以避免遗漏。Makefile 文件中定义变量的基本语法如下:变量的名称=值列表Makefile 中的变量的使用其实非常的简单,因为它并没有像其它语言那样定义变量的时候需要使用数据类型。

Dola的博客 1896

Makefile 自动变量

自动变量用于自动代替一条rule的目标和依赖列表: 以下是Makefile中的7种自动变量及其说明: $@:表示规则的目标文件名。如果目标是一个文档文件(Linux中,一般称.a文件为 文档文件,也称为静态库文件) ,那么它代表这个文档的文件名。在多目标模式 规则中,它代表的是哪个触发规则被执行的目标文件名。$%:当规则的目标文件是一个静态库文件时,代表静态库的一个成员名。例如,规则 的

David_xtd的专栏 3060

makefile自动化变量

 首先说明一下makefile学习比较好的网址,跟我一起写makefile:http://wiki.ubuntu.org.cn/index.php?title=%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile&variant=zh-cn    $@ 代表规则中的目标文件名。如果目标是一个文档(Linux中

Jack.Tech_StoreRoom 687

6.Makefile自动化变量

关于自动化变量可以理解为由 Makefile 自动产生的变量。在模式规则中,规则的目标和依赖的文件名代表了一类的文件。规则的命令是对所有这一类文件的描述。我们在 Makefile 中描述规则时,依赖文件和目标文件是变动的,显然在命令中不能出现具体的文件名称,否则模式规则将失去意义。 那么模式规则命令中该如何表示文件呢?就需要使用“自动化变量”,自动化变量的取值根据执行的规则来决定,取决于执行规则的目标文件和依赖文件。下面是对所有的自动化变量进行的说明: 自动化变量 说明 $@ 表示规则.

CodeAllen嵌入式 1252

makefile的两个变量(自动变量和普通变量)

(1)普通变量 如: obj=main.o add.o sub.o mul.o div.o //将后面的值赋值给obj,obj就是一个普通变量 target=zsx //将zsx赋值给target makefile中已经定义的一些普通变量(通常格式都是大写,类似环境变量,它们都是普通变量,直接赋值即可,任意类型皆可):CC,其值为gcc或cc(cc就是gcc,完全等价),且用户还可以修改...

luciusvorenus 1378
上一篇: Selinux 关闭
下一篇: Extern “C” 用法小结
comlc
博客等级 码龄19年 9粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值