GNU make学习笔记
第五章:规则的命令
5.1 命令的回显
make在执行命令之前会把要执行的命令输出到标准输出设备,称之为"回显"。
如果规则的命令以字符"@"开始,则make在执行这个命令的时候就不会回显这个将要被执行的命令。
另外,如果使用make的命令行参数"-n"或者"—just-print",那么make执行时只显示所要执行的命令,但不会 真正地去执行这些命令。
只有在这种情况下make才会打印出所有make需要执行的命令,其中也包括了使用"@"字符开始的命令。这个选项对于我们调试Makefile非常有用,使用这个选项我们可以按执行顺序打印出Makefile中所有需要执行的所有命令。
而make参数"-s"或"—slient"则是禁止所有执行命令的显示,就好像所有的命令均使用"@"开始一样。在Makefile中使用没有依赖的特殊目标".SILENT"也可以禁止命令的回显,但是它不如"@"来的灵活。因此在书写Makefile的时候,我们推荐使用"@"来控制命令的回显。
objects = hello, world foo.o: foo.c defs.h; @echo first command demo # module for twiddling the frobs
cc -c -g foo.c
@echo $(objects) hello:
@echo hello, linux .PHONY: clean
clean:
-@rm -rf *.o empty.command: # this is a empty command demo
P. S. 这个回显还是很好理解的,回显技能Get,√。
5.2 命令的执行
规则中,当目标需要被重建时。此规则所定义的命令将会被执行,如果是多行命令,那么每一行命令将在一个独立的子shell进程中被执行(就是说,每一行命令的执行是在一个独立的shell进程中完成的)。因此,多行命令之间的执行是相互独立的,相互之间不存在依赖(多条命令的执行为多个相互独立的进程)。
GNU make学习笔记的更多相关文章
- GNU工具链学习笔记
GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- 烤鸭的Source Insight学习笔记
如果你觉得这网页排版不好看,可以去下载我上传的word版:<烤鸭的Source Insight学习笔记.doc> http://download.csdn.NET/detail/benka ...
- 转:openwrt中luci学习笔记
原文地址:openwrt中luci学习笔记 最近在学习OpenWrt,需要在OpenWrt的WEB界面增加内容,本文将讲述修改OpenWrt的过程和其中遇到的问题. 一.WEB界面开发 ...
- Makefile的学习笔记
Makefile的学习笔记 标签: makefilewildcard扩展includeshellfile 2012-01-03 00:07 9586人阅读 评论(2) 收藏 举报 分类: Linux ...
- GRUB学习笔记(转自http://www.cnblogs.com/evilzy/archive/2008/03/30/1130173.html)
grub学习笔记1 首先要了解的几个概念 1.1 启动管理器 启动管理器是存储在磁盘开始扇区中的一段程序,例如,硬盘的MBR(Master Boot Record),在系统完成启动测试后,如果系统是从 ...
- squid 学习笔记
Squid学习笔记 1.安装前的配置 编译安装之前需要校正的参数主要包括File Descriptor和Mbuf Clusters. 1.File Descriptor 查看文件描述符的限制数目: u ...
- Linux 学习笔记 更多的bash shell命令
一 监测程序 1.ps 输出运行在系统上的所有程序的许多信息 运行ps命令,也会开启一个进程 默认情况下,ps命令只会显示运行在当前控制台下的属于当前用户的进程. Unix风格的参数(单破折号) - ...
- objc_msgSend消息传递学习笔记 – 消息转发
该文是 objc_msgSend消息传递学习笔记 – 对象方法消息传递流程 的基础上继续探究源码,请先阅读上文. 消息转发机制(message forwarding) Objective-C 在调用对 ...
随机推荐
- Java IO:BIO和NIO差别及各自应用场景
转载请注明出处:jiq•钦's technical Blog - 季义钦 引言 BIO和NIO是两种不同的网络通信模型,现现在NIO已经大量应用在Jetty.ZooKeeper.Netty等开源框架中 ...
- @Autowired(required = false)
标记在 方法上的时候,它会根据类型去spring容器中寻找 对于的形参并且注入. @Repository(value="userDao") public class UserDao ...
- HDUOJ ----1709
The Balance Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Oracle查询结果中:一列中相同的值或一列中重复的值,只显示一次
http://www.itpub.net/thread-1768915-1-1.html 问题: CREATE TABLE test(ob_id VARCHAR(32),ob_name VARCHAR ...
- 【js】replace()
replace方法的语法是: stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp) ...
- python学习笔记——多进程中共享内存Value & Array
1 共享内存 基本特点: (1)共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝. (2)为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将 ...
- JMeter学习笔记--详解JMeter配置元件
JMeter配置元件可以用来初始化默认值和变量,以便后续采样器使用.将在其作用域的初始化阶段处理. CSV Data Set Config:被用来从文件中读取数据,并将它们拆分后存储到变量中,适合处理 ...
- OAF_OAF控件系列4 - HGrid的实现(案列)
2014-06-02 Created By BaoXinjian
- OAF_OAF Framework常用函数汇总(概念)
2014-12-31 Created By BaoXinjian
- NewsLetter001
http://www.learn-english-today.com/ Project management - Iron out problems. – resolve issues. Critic ...