博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GNU make manual 翻译( 一百三十一)
阅读量:4982 次
发布时间:2019-06-12

本文共 1784 字,大约阅读时间需要 5 分钟。

继续翻译

5.1.2 Using Variables in Recipes--------------------------------The other way in which `make' processes recipes is by expanding anyvariable references in them (*note Basics of Variable References:Reference.).  This occurs after make has finished reading all themakefiles and the target is determined to be out of date; so, therecipes for targets which are not rebuilt are never expanded.   Variable and function references in recipes have identical syntax andsemantics to references elsewhere in the makefile.  They also have thesame quoting rules: if you want a dollar sign to appear in your recipe,you must double it (`$$').  For shells like the default shell, that usedollar signs to introduce variables, it's important to keep clear inyour mind whether the variable you want to reference is a `make'variable (use a single dollar sign) or a shell variable (use two dollarsigns).  For example:     LIST = one two three     all:             for i in $(LIST); do \                 echo $$i; \             doneresults in the following command being passed to the shell:     for i in one two three; do \         echo $i; \     donewhich generates the expected result:     one     two     three

5.1.2 在片段中使用变量

--------------------------------

make 处理片段的另一个方式是通过扩展任何的片段中的变量参照(*note Basics of Variable References: Reference.) 。这发生在当make 读取完毕所有的makefile并且目的被认为是过期的时候;因此,未被重新构建的目的的片段不会被展开。

makefile中的片段的变量和函数参照有着相同的语法和语义。它们也有同样的引用规则。如果你想要你的片段中出现一个美元符号,你必须使用$$。

对于缺省shell那样的shell, 使用美元符号来引入变量,保持头脑清醒地了解你所要使用的变量是否是 make 的变量(使用一个美元符)还是说是shell 的变量(使用两个美元符),是很重要的。例如:

LIST = one two three

all:
for i in $(LIST); do \
echo $$i; \
done

形成如下传递给shell的命令:

for i in one two three; do \

echo $i; \
done

得到如下的结果:

one

two
three

后文待续

转载于:https://www.cnblogs.com/gaojian/archive/2012/09/27/2705654.html

你可能感兴趣的文章
计算tableview的高度
查看>>
使用外语会影响我们的道德判断
查看>>
菜鸟学Java第一天
查看>>
【freemaker】之自定义指令通用select模版
查看>>
PHP类和对象之重载
查看>>
解决 win10 由于磁盘缓慢造成机器迟钝
查看>>
flask-信号
查看>>
Spring-Cloud的版本是如何定义的
查看>>
传入class、id name 的函数封装
查看>>
软工网络15团队作业3——需求分析与设计
查看>>
python 类对象和实例对象动态添加方法
查看>>
【转】C#生成验证码
查看>>
Linux环境下JDK/Eclipse一键安装脚本
查看>>
HwUI,CMS管理系统模板,漂亮,简单,兼容好
查看>>
特意给我的轩写的小知识
查看>>
LibreOJ #2003. 「SDOI2017」新生舞会
查看>>
sublime text there are no packages available for installation 解决办法
查看>>
Piston Pump Manufacturers - Mobile Cartridge Piston Pump: Advantages
查看>>
我喜欢的几款不错的vim插件
查看>>
eclipse在ubuntu13.04下崩溃crash
查看>>