makefile(六):makefile的命令行参数
来源:互联网 发布:mac显示路径命令 编辑:程序博客网 时间:2024/05/17 23:04
本节已经是makefile的最后一小节了,本节介绍makefile的常见的调试和运行参数
-n--just-print--dry-run--recon
make不执行命令,只打印出需要重建目标使用的命令
-t--touch
更新所有目标文件的时间戳( 对于过时的目标文件不进行内容更新, 只更新时间戳)。
-q--question
不执行任何命令并且不打印任何输出信息, 只检查所指定的目标是否已经是最新的。如果是则返回 0, 否则返回 1。
-W FILE--what-if= FILE--assume-new= FILE--new-file= FILE
假定指定的文件为最新。
配合-n参数,可以查看,哪些目标依赖这个文件,并且将运行哪些命令
配合-t参数,可以更新,依赖这个文件的目标文件,都进行更新
这几个参数的配合非常有用,在后面的文章中,将会对google 的Android原生系统的编译进行分析,可以使用者几个参数的配合,进行分析。
-B--always-make
强制重建所有规则的目标, 不根据规则的依赖描述决定是否重建目标文件。
-C DIR--directory=DIR
在运行make指令之前,切换工作目录为DIR
--debug=[options]
指定输出的信息的等级
options为一下的值,a(all),b(basic),v(verbose),i(implic),j(jobs),m(makefiile).分别表示如下的意义:
a:输出所有的类型的调试信息b:输出基本调试信息。 包括: 那些目标过期、 是否重建成功过期目标文件。v:“ basic” 级别之上的输出信息。 包括: 解析的 makefile 文件名, 不需要重建文件等。 此选项目默认打开“ basic” 级别的调试信息。i:输出所有使用到的隐含规则描述。 此选项目默认打开“ basic” 级别的调试信息j:输出所有执行命令的子进程, 包括命令执行的 PID 等。m:也就是 makefile, 输出 make 读取 makefile, 更新 makefile, 执行 makefile的信息。
注意:上面的所有文字,大部分直接拷贝于《gnu make中文手册》作者:徐海兵
-e--environment-overrides
使用系统环境变量的定义覆盖Makefile中的同名变量定义
-f=FILE--file= FILE--makefile= FILE
指定“ FILE”为make执行的makefile文件。
-i--ignore-errors
执行过程中忽略规则命令执行的错误。
-I DIR--include-dir=DIR
指定被包含makefile文件的搜索目录。在Makefile中出现“ include”另外一个文件时,将在“ DIR”目录下搜索,多个“ -I”指定目录时,搜索目录按照指定顺序进行。
-j [JOBS]--jobs[=JOBS]
指定可同时执行的命令数目。在没有指定“ -j”参数的情况下,默认为1,存在多个“ -j”参数时,尽最后一个“ -j”指定的数目(“ JOBS”)有效。
-k--keep-going
执行命令错误时不终止make的执行, make尽最大可能的执行所有的命令,直到出现致命错误才终止。
-l LOAD--load-average[=LOAD]— max-load[=LOAD]
告诉make当存在其它任务在执行时,如果系统负荷超过“ LOAD”,不再启动新任务。没有指定“ LOAD”的“ -I”选项将取消之前“ -I”指定的限制
-o FILE--old-file= FILE--assume-old= FILE
指定文件“FILE”不需要重建,即使相对于它的依赖已经过期;同时也不重建依赖于此 文件任何文件(目标文件)。注意:此参数不会通过变量“MAKEFLAGS”传递给子make进程。
-r--no-builtin-rules
取消所有内嵌的隐含规则,不过你可以在Makefile中使用模式规则来定义规则。
同时选项“ -r”会取消所有支持后追规则的隐含后缀列表,同样我们也可以在Makefile中使用“ .SUFFIXES”定义我们自己的后缀规则。“ -r”选项不会取消make内嵌的隐含变量。
-R--no-builtin-variabes
取消 make 内嵌的隐含变量。注意,“ -R”选项同时打开“ -r”选项。因为没有了隐含变量,隐含规则将失去意义(隐含规则是以内嵌的隐含变量为基础的)。
--warn-undefined-variables
在发现Makefile中存在对没有定义的变量进行引用时给出告警信息。此功能可以帮助我们调试一个存在多级套嵌变量引用的复杂Makefile。但是:我们建议在书写Makefile时尽量避免超过三级以上的变量套嵌引用。
本打算每月写一遍笔记,奈何到了7月诸事缠身,不得已现在才补上。
下一个要学习的内容:git的版本管理
- makefile(六):makefile的命令行参数
- makefile(六):makefile的内置函数
- 【makefile】一起写makefile(六)--函数的使用
- makefile(六)
- makefile详解(六)
- MakeFile基础知识(六)
- Makefile详解(六)
- Makefile(六)
- 六、另类风格的makefile
- makefile制作六(转载)
- 从零开始学Makefile(六)
- Makefile 参数
- Makefile 参数
- makefile参数
- ubuntu下使用VScode打开本地使用makefile编译的工程(包括命令行参数的配置)
- makefile的和gcc参数
- 如何使用makefile的命令行变量 CFLAGS
- 如何使用makefile编译不同平台的目标文件(makefile的参数传递)
- 树莓派 b+ 第0天
- java类集---属性类:Properties
- Benchmarks of DFJSPs 01-10
- java JVM 堆新生代与老年代及回收方式
- 高性能搜索引擎sphinx源码解析之搜索过程和评分公式
- makefile(六):makefile的命令行参数
- Android中原型模式
- 微信小程序删除项目报 已存在touristappid
- [ Java学习 ] 破除思维定势之 C++ 和 Java 的差异 003
- 简易多线程服务器
- ElasticSearch 集群安装(5.5.2)
- JavaScript中的正则表达式
- 让instance使用hugepage
- leetcode 646. Maximum Length of Pair Chain