make的命令行选项

2023-05-16

http://www.linuxsir.org/main/doc/gnumake/GNUmake_v3.80-zh_CN_html/make-09.html

这些参数可以通过man手册查看(红色是比较有用的选项):
-b
-m
忽略,提供其它版本make兼容性。

-B
--always-make
强制重建所有规则的目标,不根据规则的依赖描述决定是否重建目标文件。

-C DIR
--directory=DIR
在读取Makefile之前,进入目录“DIR”,就是切换工作目录到“DIR”之后执行make。存在多个“-C”选项时,make的最终工作目录是第一个目录的相对路径。如:“make –C / -C etc”等价于“make –C /etc”。一般此选项被用在递归地make调用中。

-d
make在执行过程中打印出所有的调试信息。包括:make认为那些文件需要重建;那些文件需要比较它们的最后修改时间、比较的结果;重建目标所要执行的命令;使用的隐含规则等。使用“-d”选项我们可以看到make构造依赖关系链、重建目标过程的所有信息,它等效于“—debug=a”.

—debug[=OPTIONS]
make执行时输出调试信息。可以使用“OPTIONS”控制调试信息级别。默认是“OPTIONS=b”,“OPTIONS”的可能值为以下这些,首字母有效(all 和 aw等效)。

a(all)
输出所有类型的调试信息,等效于“-d”选项。

b(basic)
输出基本调试信息。包括:那些目标过期、是否重建成功过期目标文件。

v(verbose)
“basic”级别之上的输出信息。包括:解析的makefile文件名,不需要重建文件等。此选项目默认打开“basic”级别的调试信息。

i(implicit)
输出所有使用到的隐含规则描述。此选项目默认打开“basic”级别的调试信息。

j(jobs)
输出所有执行命令的子进程,包括命令执行的PID等。

m(makefile)
也就是makefile,输出make读取makefile,更新makefile,执行makefile的信息。

-e
--environment-overrides
使用系统环境变量的定义覆盖Makefile中的同名变量定义。

-f=FILE
--file= FILE
--makefile= FILE
指定“FILE”为make执行的makefile文件。

-h
--help
打印帮助信息。

-i
--ignore-errors
执行过程中忽略规则命令执行的错误。

-I DIR
--include-dir=DIR
指定被包含makefile文件的搜索目录。在Makefile中出现“include”另外一个文件时,将在“DIR”目录下搜索。多个“-I”指定目录时,搜索目录按照指定顺序进行。

-j  [JOBS]
--jobs[=JOBS]
指定可同时执行的命令数目。在没有指定“-j”参数的情况下,执行的命令数目将是系统允许的最大可能数目。存在多个“-j”参数时,尽最后一个“-j”指定的数目(“JOBS”)有效。

-k
--keep-going
执行命令错误时不终止make的执行,make尽最大可能的执行所有的命令,直到出现致命错误才终止。

-l LOAD
--load-average[=LOAD]
—max-load[=LOAD]
告诉make当存在其它任务在执行时,如果系统负荷超过“LOAD”(浮点数表示的),不再启动新任务。没有指定“LOAD”的“-I”选项将取消之前“-I”指定的限制。

-n
--just-print
--dry-run
--recon
只打印出所要执行的命令,但不执行命令。

-o FILE
--old-file= FILE
--assume-old= FILE
指定文件“FILE”不需要重建,即使相对于它的依赖已经过期;同时也不重建依赖于此文件任何文件(目标文件)。注意:此参数不会通过变量“MAKEFLAGS”传递给子make进程。

-p
--print-data-base
命令执行之前,打印出make读取的Makefile的所有数据(包括规则和变量的值),同时打印出make的版本信息。如果只需要打印这些数据信息(不执行命令)可以使用“make -qp”命令。查看make执行前的预设规则和变量,可使用命令“make –p -f /dev/null”。

-q
--question
称为“询问模式”;不运行任何命令,并且无输出。make只是返回一个查询状态。返回状态为0表示没有目标需要重建,1表示存在需要重建的目标,2表示有错误发生。

-r
--no-builtin-rules
取消所有内嵌的隐含规则,不过你可以在Makefile中使用模式规则来定义规则。同时选项“-r”会取消所有支持后追规则的隐含后缀列表,同样我们也可以在Makefile中使用“.SUFFIXES”定义我们自己的后缀规则。“-r”选项不会取消make内嵌的隐含变量。

-R
--no-builtin-variabes
取消make内嵌的隐含变量,不过我们可以在Makefile中明确定义某些变量。注意,“-R”选项同时打开“-r”选项。因为没有了隐含变量,隐含规则将失去意义(隐含规则是以内嵌的隐含变量为基础的)。

-s
--silent
--quiet
取消命令执行过程的打印。

-S
--no-keep-going
--stop
取消“-k”选项。在递归的make过程中子make通过“MAKEFLAGS”变量继承了上层的命令行选项。我们可以在子make中使用“-S”选项取消上层传递的“-k”选项,或者取消系统环境变量“MAKEFLAGS”中的“-k”选项。

-t
—touch
和Linux的touch命令实现功能相同,更新所有目标文件的时间戳到当前系统时间。防止make对所有过时目标文件的重建。

-v
--version
查看make版本信息。

-w
--print-directory
在make进入一个目录读取Makefile之前打印工作目录。这个选项可以帮助我们调试Makefile,跟踪定位错误。使用“-C”选项时默认打开这个选项。参考本节前半部分“-C”选项的描述。

--no-print-directory
取消“-w”选项。可以是用在递归的make调用过程中,取消“-C”参数的默认打开“-w”功能。

-W FILE
--what-if= FILE
--new-file= FILE
--assume-file= FILE
设定文件“FILE”的时间戳为当前时间,但不改变文件实际的最后修改时间。此选项主要是为实现了对所有依赖于文件“FILE”的目标的强制重建。
    这个参数需要指定一个文件名。通常是一个存在源文件。make将当前系统时间作为这个文件的时间戳(假设这个文件被修改过,但不真正的更改文件本身的时间戳)。因此这个文件的时间戳被认为最新的,在执行时依赖于这个文件的目标将会被重建。通过这种方式并结合“-n”参数,我们可以查看那些目标依赖于这个文件(修改这个文件以后执行make那些目标会被更新)。
    通常“-W”参数和“-n”参数一同使用,可以在修改一个文件后来检查修改会造成那些目标需要被更新,但并不执行更新的命令,只是打印命令。
    “-W”和“-t”参数配合使用时,make将忽略其它规则的命令。只对依赖于“-W”指定文件的目标执行“touch”命令,在没有使用“-s”时,可以看到那些文件执行了“touch”。需要说明的是,make在对文件执行“touch”时不是调用shell的命令,而是由make直接操作。
    “-W”和“-q”参数配合使用时。由于将当前时间作为指定文件的时间戳(目标文件相对于系统当前时间是过时的),所以make的返回状态在没有错误发生时为1,存在错误时为2。
    注意:以上三个参数同时使用时可能会出现错误

--warn-undefined-variables
在发现Makefile中存在对没有定义的变量进行引用时给出告警信息。此功能可以帮助我们调试一个存在多级套嵌变量引用的复杂Makefile。但是:我们建议在书写Makefile时尽量避免超过三级以上的变量套嵌引用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

make的命令行选项 的相关文章

  • VMware + fedora25下安装QT5.8

    失业了 xff0c 搞单片机太久忘了这个linux xff0c 但为了重新找工作没办法重新学习 xff0c xff1a xff08 这几天手提上安装VMware和Fedora25 xff0c 把QT5 8安装了 xff0c 过程曲折 xff
  • Reproducible Research in Computational Science

    Reproducible Research in Computational Science http www csee wvu edu xinl source html It doesn 39 t matter how beautiful
  • 无人机学习所遇问题动态记录

    问题一 QGC显示 xff1a Detected 0 radio channels To operate PX4 you need at least 5 channels 原因 xff1a RC插错位置 解决方案 xff1a SBUS对应的
  • 四轮全向轮是不是比麦轮的控制难度大?

    经过一番搜索 xff0c 就发现一个做四轮全向小车的大佬 xff0c 其他都是四轮麦轮 xff0c 做四轮小车是麦轮比较好 xff1f 优点有哪些呢 xff1f
  • NoValidHost: No valid host was found. : NoValidHost_Remote: No valid host was found.

    openstack的queens版本创建实例的时候实例状态ERROE 查看日志以下错误 2019 12 10 11 32 25 436 4805 WARNING nova scheduler utils req d3743b51 2f00
  • 解决Windows下Pixhawk(PX4)编译提示没有cmake的问题

    多谢楼下的提示 xff0c 原来是64位系统下环境变量中包含 xff08 x86 xff09 的问题 xff0c 所以下面的解决方法也是错的 xff0c 看看就好了 以前安装cmake的时候还会注意一下安装选项 xff0c 后来就潜意识认为
  • 嵌入式linux串口通信自发自收测试程序

    串口自收自发程序主函数 include 34 uart api h 34 int main int fd char buff BUFFER SIZE char buff2 61 34 Hello NUAA2440 n 34 int nrea
  • js删除对象的属性及封装方法

    javascript中可以通过delete删除对象的属性 xff1a 使用方法如下 xff1a span class hljs keyword style font family none border 0px background tra
  • XML 转sql

    XML 转 sql 思路一 用字符匹配 找到的例子 xff1a https github com hhyo mybatis mapper2sql https github com inanutshellus mybatis xml inte
  • 【无标题】

    学习目标 xff1a 分布式事务 学习内容 xff1a 1 CAP BASE 基本内容和实现 2 TCC SAGA 消息一致性 实现的最终一致性 3 CMQ https cloud tencent com developer article
  • dev 调试

    问题集锦 xff1a 1 dev的代码自动补全功能 xff08 vs的智能提示功能 xff09 的快捷键 2 调试时 xff0c 二维字符数组的样子 如图很是怪异 xff1a 3 这篇博文可以供以后出现问题后参考 xff0c 其主要改变的是
  • c语言scanf接收字符的问题

    scanf xff08 c xff0c amp c xff09 xff1b 与scanf xff08 c xff0c amp c xff09 xff1b 看上去差别很小实际上第二个仅仅多了一个空格 却差别很大 尤其是scanf接收的数据之前
  • 浮点错误

    转载部分 xff1a 浮点错误 您的程序运行时发生浮点错误 xff0c 比如遇到了除以 0 的情况 所以发生浮点错误应该考虑程序中 xff1a 是否可能出现了一个数除以0的情况 是否可能出现了一个数取余0的情况 是否发生了数据溢出而导致的除
  • 猿辅导2017 笔试题

    题目描述 小明认为某些数字不吉利 xff0c 付账时会尽可能少的多付一些钱 xff0c 使得价格中不包含这些不吉利数字 xff0c 并且不出现0 例如 xff0c 不吉利数字为1 xff0c 4 xff0c 7 xff0c 8 xff0c
  • 数据挖掘期末考试

    1理解概念 1 1数据挖掘 1 2关联规则 1 3数据预处理 1 4置信度 1 5聚类 1 6KNN 1 7SVM 2 分类器设计的三个过程 3 分类时常将样本怎样划分 xff1f 4 评估分类器性能的常用指标 5 数据挖掘常用技术有哪些
  • npm超时

    有时使用npm下载很慢出现超时 xff0c 可以尝试使用cnpm xff0c 国内镜像 安装 npm install cnpm g registry 61 https registry npm taobao org 测试是否成功 cnpm
  • 机试第一节

    问题 xff1a 1 6中的n的阶乘太大时发生溢出怎么处理 分割线 1 双精度浮点类型的定义 xff1a double 输出 lf 单精度浮点类型的定义 xff1a float 输出 xff1a f 2鸡兔同笼问题 xff0c 判断所给样例
  • Python小技巧之——巧用with语句实现异常处理

    Python的异常处理语句try except大家都很熟悉了 xff0c 例如 xff1a try 1 0 except Exception as ex print ex integer division or modulo by zero
  • 将lwip1.4.1工程移植至lwip2.1.2记录

    将lwip1 4 1工程移植至lwip2 1 2记录 1 ip addr结构体2 etharp h3 cc h与arch h4 tcp impl h 关于二者文件 功能等差异网上已有很多文章介绍 xff0c 类似这个文档有简单说了下这两个版
  • 在Windows和Ubuntu上安装VNC连接远程服务器

    如果你是公用的服务器的管理员需要添加一些用户 xff0c 并配置VNC服务以便远程访问 xff0c 简要介绍一下配置方法 具体的命令可以参照命令手册去查看 man span class hljs command span class hlj

随机推荐

  • 变频器的工作原理及其电路分析

    变频器简单的说就是结合了变频技术和微电子技术研制出来的可以改变输入电源的频率得到另外一种频率电源输出的设备 其输入的电源就是我们工业上面使用的电源 xff0c 一般都是电压和频率都固定不变的交流电 240v或者380v交流电 通过内置的一些
  • 欠拟合、过拟合及其解决方法

    在我们机器学习或者训练深度神经网络的时候经常会出现欠拟合和过拟合这两个问题 xff0c 但是 xff0c 一开始我们的模型往往是欠拟合的 xff0c 也正是因为如此才有了优化的空间 xff0c 我们需要不断的调整算法来使得模型的表达能拿更强
  • ubuntu18.04安装ROS Melodic的详细过程以及填坑经历

    一 版本说明 ROS官方将在2021年不再维护Kinetic xff0c 后续使用Ubuntu18 04 43 Melodic组合 xff0c Melodic支持时间到2023年5月 二 安装前Ubuntu18 04设置 打开Ubuntu1
  • win10和ubuntu20双系统设置默认启动系统为win10

    在win10下安装了Ubuntu20 04系统 xff0c 默认情况下 xff0c 启动的是Ubuntu系统 要将默认启动系统设置成win10 xff0c 方法如下 xff1a 1 进入ubuntu系统 xff0c 按住Ctrl 43 Al
  • Keil添加芯片支持包(Pack)

    1 前言 一直用STM32的芯片 xff0c 现在想看看工程是否可以在其他厂家的芯片上跑 xff0c 可是keil的Device中只有ST厂家的 因此 xff0c 尝试在keil中添加其他厂家的芯片支持包 2 keil软件内安装 点击工具栏
  • Qt 设置窗体大小和背景颜色

    1 一种方法是设置它的最大窗口值和最小窗口值 xff0c 并且使最大值和最小值相等 简单的示例 xff1a setMinimumSize 370 150 setMaximumSize 370 150 此时窗口大小便被固定为 xff08 37
  • Shell 脚本详解

    简介 shell xff1a 蛋 壳 shell脚本是在操作系统外 xff0c 可以直接调用系统内核命令的一个脚本语言 shell脚本可以分为两大类组成 xff1a 1 命令行 xff08 系统命令行 xff09 2 脚本语法 xff08
  • Windows——电脑不能连接手机热点(WLAN显示已经禁用)的解决办法

    笔记本电脑提示 xff1a 已关闭无线功能 基于这篇博客之上 xff0c 在第二步中 xff0c 关闭WLAN AutoConfig 服务 xff0c 之后重新打开WLAN AutoConfig 服务 xff0c 即可
  • Ubuntu——系统语言由英文切换到中文的方法

    一 方法一 ubuntu设置系统语言为中文 二 方法二 若方法一中不能拖动中文输入法到第一行 xff0c 则可以直接采取卸载英文输入法 xff0c 这样就中文输入法到第一行了 xff0c 切换成中文了 英文输入法可以根据需要考虑是否安装 一
  • RealSense D435——基本介绍

    一 结构介绍 采用的是结构光Tof成像方案 正面的四个摄像头从左至右 xff0c 依次是左红外相机 红外点阵投影仪 右红外相机 RGB相机 xff08 前三个负责形成深度图 xff0c 最后一个就形成RGB图 xff09 二 小贴士 RGB
  • RealSense D435——相机内参获取

    RealSense D435 相机内参获取 一 参考博客二 小贴士2 1 遇到的问题及解决方案问题一描述问题一解决方法问题二描述问题二解决方法 一 参考博客 RealSense D435内参获取环境配置 xff1a Realsense D4
  • Vscode——报错解决:Unable to start debugging.Unexpected GDB output from command. 或 程序点击运行一直无结果

    一 报错截图 1 Unable to start debugging Unexpected GDB output from command 2 程序点击运行一直无结果 二 原因 路径中含有中文 三 解决办法 将文件放入不包含中文的路径下
  • Github——合并分支

    一 当两个分支不一样时 xff0c 会出现下面的标志 xff08 前提是设定了分支保护 xff09 xff0c 点击Compare amp pull request 二 选择双方分支 三 处理请求 四 确认请求
  • 基于四旋翼飞行器的陀螺仪、加速度计、磁力计传感器说明

    一 什么是磁力计 加速度计和陀螺仪以及他们之间的区别 1 什么是陀螺仪 加速度计和磁力计 xff1f xff08 1 xff09 陀螺仪 xff08 Gyroscope GYRO Sensor xff09 也叫地感器 xff0c 三轴陀螺仪
  • 操作系统(二) -- 操作系统的接口与实现

    前言操作系统的接口 什么是操作系统的接口POSIX标准 系统调用的实现 1 xff0c 用户程序能不能直接调用系统内核2 xff0c 如果不能直接调用 xff0c 为什么 xff1f 如何实现的3 xff0c 用户程序如何才能调用系统内核系
  • 自动驾驶路径规划技术-高速公路路径规划

    Path Planning Highway Driving project Github https github com williamhyin CarND Path Planning Email williamhyin 64 outlo
  • FYI, MySQL高效分页

    在Percona Performance Conference 2009大会上来自yahoo的Surat Singh Bhati surat 64 yahoo inc com 和 Rick James rjames 64 yahoo inc
  • 【论文理解】ArcFace: Additive Angular Margin Loss for Deep Face Recognition(InsightFace)

    论文地址 xff1a https arxiv org abs 1801 07698 github xff1a https github com deepinsight insightface 这篇论文基本介绍了近期较为流行的人脸识别模型 x
  • Ubuntu录屏

    1 CTRL 43 ALT 43 SHIFT 43 R 开始录屏 2 CTRL 43 ALT 43 SHIFT 43 R 结束录屏 3 视频保持路径 xff1a Video xxx webm 注意 xff1a 默认录屏时间为30秒 xff0
  • make的命令行选项

    http www linuxsir org main doc gnumake GNUmake v3 80 zh CN html make 09 html 这些参数可以通过man手册查看 红色是比较有用的选项 b m 忽略 xff0c 提供其