makefile之origin函数
origin
函数的作用是告诉你变量是哪里来的,其出生状况如何,他并不改变变量。
函数语法:
$(origin )
为变量的名字,而不是引用,所以一般没有"$"字符在前。
origin 函数通过返回值来告诉你 的出生情况。下面用实例说明:
- 当从来未定义过该变量时,origin 函数返回 "undefined" 。
如下面的 Makefile 代码:
all:
@echo $(origin V)
运行输出:
$ make
undefined
- 如果该变量为环境变量,那么返回 "enviroment" 。
如下面的 Makefile 代码:
all:
@echo $(origin USER)
运行输出:
$ make
environment
其中 USER 这个变量为系统定义的当前用户,使用 env 命令可以看到。
- 如果变量是个默认定义,那么返回 "default"。
如下面的 Makefile 代码:
all:
@echo $(origin CC)
运行输出:
$ make
default
- 如果一个变量被定义在 Makefile 文件中,那么返回 "file" 。
如下面的 Makefile 代码:
V := 1
all:
@echo $(origin V)
运行输出:
$ make
file
- 如果变量来自命令行,那么返回 "command line" 。
如下面的 Makefile 代码:
all:
@echo $(origin MyVar)
运行方法:
$ make MyVar="Are you ok?"
command line
- 如果变量被 override 被重新定义过,那么返回 "override"。
如下面的 Makefile 代码:
override SHELL = /bin/sh
all:
@echo $(origin SHELL)
运行输出:
$ make
override
上面,SHELL 原本是个环境变量,但在 Makefile 里被 override 指示符重定义过。
- 如果变量是自动化变量(如 $@, $< 等),那么返回 "automatic" 。
如下面的 Makefile 代码:
all:
@echo $(origin @)
运行输出:
$ make
automatic
makefile之origin函数的更多相关文章
- Linux makefile教程之函数七[转]
使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做 ...
- Makefile编写 四 函数篇
一.函数的调用语法 函数调用与变量一样,也是以“$”来标识的,其语法如下: $(<function> <arguments>) 或是 ${<function> &l ...
- Makefile中的函数
Makefile 中的函数 Makefile 中自带了一些函数, 利用这些函数可以简化 Makefile 的编写. 函数调用语法如下: $(<function> <arguments ...
- linux makefile字符串操作函数 替换subst、模式替换patsubst、去首尾空格strip、查找字符串findstring、过滤filter、反过滤filter-out、排序函数sort、取单词word、取单词串wordlist、个数统计words
1.1 字符操作函数使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函 ...
- Makefile内嵌函数
subst字符串替换函数 $(subst <from>, <to>, <text>),把<text>中的<from>字符串替换成<to ...
- makefile 字符串处理函数
截取自<跟我一起写Makefile> (1) $(subst <from>, <to>, <text>) 名称: 字符串替换函数 subst 功能: ...
- makefile之shell函数
shell函数不同于除"wildcard"函数之外的其它函数.make可以使用它来和外部通信. 函数功能:函数"shell"所实现的功能和shell中的引用(` ...
- 【makefile】symbol <函数> : can't resolve symbol 问题分析
调试程序的时候,在linux编译器上可以编译通过,但是编译生成的firmware烧录到板子上的后出现以下异常: can't resolve symbol,无法解析元素符号. review一下code, ...
- makefile之wildcard函数
$(wildcard PATTERN) 函数功能: 获取匹配 PATTERN 的所有对象 返回值: 使用空格分割的匹配对象列表 1. 示例1
随机推荐
- FIS常用功能之MD5版本
静态资源后缀加上md5参数,有效解决缓存更新问题 fis release --optimize --md5 使用前后对比:
- app生成工具
国内主流的在线APP生成工具 应用公园:http://www.apppark.cn/ 追信魔盒:http://app.zhui.cn/ 安米网:http://www.appbyme.com/ 简网AP ...
- Postgres间隔大量写IO的解决办法
概述 为了保证数据可靠性,同时还要保证好的读写性能,以及读写的一致性,经过多年的积累,REDO日志,shared buffer等基本成为关系型数据库的标配.postgres也不例外. 为了保证数据的可 ...
- 一.RocketMQ消息中间件 windwos使用
⦁ 能够保证严格的消息顺序⦁ 提供丰富的消息拉取模式⦁ 高效的订阅者水平扩展能力⦁ 实时的消息订阅机制⦁ 亿级的消息堆积能力⦁ 下载https://github.c ...
- 白话空间统计之:Moran's I(莫兰指数)
前两天聊了空间统计学里面的两个经典概念,今天来说说第一篇文章留下的大坑:Moran's I. 首先,Moran's I这个东西.官方叫做:莫兰指数,是澳大利亚统计学家帕特里克·阿尔弗雷德·皮尔斯·莫兰 ...
- Android异步载入全解析之大图处理
Android异步载入全解析之大图处理 异步载入中很重要的一部分就是对图像的处理,这也是我们前面用异步载入图像做示例的原因. 一方面是由于图像处理不好的话会很占内存,并且easyOOM,还有一方面,图 ...
- java运行shell命令,chmod 777 xxx,改变权限无效的解决的方法。
在java程序中运行shell命令,改变文件的权限.能够在命令行中运行 chmod 777 <span style="font-family: Arial, Helvetica, sa ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-如何在程序中添加注释
在TwinCAT2中,(*中间输入注释*),也可以用这种方法批量注释,在TwinCAT3中,使用//即可 更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youk ...
- winlogon.exe应用程序错误怎么办
winlogon.exe应用程序错误 求解决办法,重装,还原一定能解决就不要说了,我要其他办法 最佳答案 winlogon.exe 是控制你的系统登陆的程序,是系统绝对核心进程,用来管理系统用户登陆! ...
- 使用Kotlin创建Android项目
如果你已经使用过Android Studio和Gradle,那么这一章会比较简单.我不会给出很多细节和截图,因为用户界面和细节可能会一直变化. 我们的应用是由一个简单的天气app组成,正如所使用的Go ...