先说一下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”时,是一个命令运行中自动化变量

最新文章

  1. “adb不是内部或外部命令,也不是可执行的应用程序”错误原因及解决方法
  2. BMP文件的读取与显示
  3. Windows 7 的系统优化方案
  4. 软件设计原则(五)接口隔离原则 -Interface Segregation Principle
  5. python读写kafka集群(转载+自己验证)
  6. Linux 重启网卡
  7. 最优化读书笔记R(一)
  8. java安装选择哪个可选功能_java章节习题及期末考试题答案.doc
  9. oracle设置表的主键和外键,Oracle中给表添加主键、外键
  10. oracle24801错误,[数据库]oracle错误(ORA
  11. mysql数据库集群版_MySQL数据库集群实战
  12. 解压rar_【RAR安卓】RAR解压v5.91.build93去广告版,解压多种压缩包 与WinRAR完美兼容!...
  13. CAN分析仪的特点与功能
  14. Android实现百度地图定位服务
  15. 电脑配置挑选速成攻略
  16. Mac 电脑鼠标和触摸板滚动方向不一致的问题
  17. 供应链金融不同融资模式的风险应对措施
  18. LFTP file already exists and xfer:clobber is unset
  19. 高等代数:4 矩阵的运算
  20. 我在金蝶用户年会上的讲话

热门文章

  1. 对oracle的心得体会,学习心得征文活动精选一:Oracle学习的心得体会
  2. 解决install sass-loader 引入 ,版本过高问题
  3. 2022年shopee的趋势如何-扬帆凌远
  4. 工行总行佟建民、蒋卫华被控贪污数百万受审
  5. 软件工程师行业,读个在职硕士,有无必要
  6. 生意不好如何逆风翻盘 | 多门店经营必读技巧(1):导购管理 连锁店管理的技巧 连锁店生意经 如何做导购管理
  7. 【深度学习面试八股文】-- 1-5
  8. 域名,IP,主机名的区别与使用
  9. Python字符串操作大全(一)
  10. 计算机活动天窗,活动详情