$(origin variable)详解
先说一下origin语法:origin函数不像其它函数。他并不直接操作变量的值,只是告诉你这个变量是从哪里来的?
其语法是:$(origin variable)
注意这里是变量的名字,不是引用,所以不要使用“$”字符。origin函数会以返回值告诉你这个变量的“出生情况”(这个变量从哪里来的?),下面来看一下origin函数的返回值好了。
我们先新建一个Makefile文件,内容是:
ifdef O
ifeq ("$(origin O)", "command line")
BUILD_DIR := $(O)
endif
endif
all :
echo $(origin O)
echo $(BUILD_DIR)
注意;这里的“O”是字母大写的o,不是数字0.
(1)返回值为"undefine"时,这个变量没有被定义过
直接在命令行中输入“make”,ifeq是比较两个变量是否相等,相等才执行后面的语句,显然这里并不相等,且因为BUILD_DIR没有定义,所以BUILD_DIR为空。
(2)返回值为“command line”时,这个变量是被命令行定义的。
在命令行中输入“make O=命令”
(3)返回值为“environment”时,这个变量是定义为环境变量。
我们先把 O定义为环境变量,然后再make
(4)返回值为“file”时,这个变量是定义在Makefile中。
我们在Makefile中再输入这么一行定义O变量的命令,然后make。
(5)返回值为“default”时,变量是默认定义的。‘
(6)返回值为“override”时,被override指示符重新定义
(7)返回值为“automatic”时,是一个命令运行中自动化变量
最新文章
- “adb不是内部或外部命令,也不是可执行的应用程序”错误原因及解决方法
- BMP文件的读取与显示
- Windows 7 的系统优化方案
- 软件设计原则(五)接口隔离原则 -Interface Segregation Principle
- python读写kafka集群(转载+自己验证)
- Linux 重启网卡
- 最优化读书笔记R(一)
- java安装选择哪个可选功能_java章节习题及期末考试题答案.doc
- oracle设置表的主键和外键,Oracle中给表添加主键、外键
- oracle24801错误,[数据库]oracle错误(ORA
- mysql数据库集群版_MySQL数据库集群实战
- 解压rar_【RAR安卓】RAR解压v5.91.build93去广告版,解压多种压缩包 与WinRAR完美兼容!...
- CAN分析仪的特点与功能
- Android实现百度地图定位服务
- 电脑配置挑选速成攻略
- Mac 电脑鼠标和触摸板滚动方向不一致的问题
- 供应链金融不同融资模式的风险应对措施
- LFTP file already exists and xfer:clobber is unset
- 高等代数:4 矩阵的运算
- 我在金蝶用户年会上的讲话