如何将 Makefile 中的警告视为错误?

2024-03-01

  1. 是否可以将警告视为 Makefile 中的错误(从而在 Makefile 继续之前退出)

  2. 此外,是否可以过滤掉哪个警告会产生错误?

我的用例:我想使用--warn-undefined-variables与此结合,当变量未定义时,Makefile 将退出,这是一个非常常见的错误来源。显然我不想手动检查每个变量,因为这很容易出错/乏味。我找不到任何相关内容,但这是一个非常重要/基本的功能。

注:我不是在寻找-Werror这是 gcc 特定命令,不适用于我的用例。


如果您准备向每个目标添加依赖项,则可以将警告变为错误。

这是一个包含错误的 make 文件(“SRCS”而不是“SRC”):

# Turn on the warning we want
MAKEFLAGS += --warn-undefined-variables

# Make sure MAKECMDGOALS is defined, so it doesn't cause an error itself
ifndef MAKECMDGOALS
MAKECMDGOALS = all
endif

SRC=hello.c

all: compile

# Fails if the Makefile contains any warnings.
# Run this Makefile with the same goals, but with the -n flag.
# Grep for warnings, and fail if any are found.
no-make-warnings:
    ! make -n $(MAKECMDGOALS) 2>&1 >/dev/null | grep warning

# Targets you want to check must depend on no-make-warnings
compile: no-make-warnings
    gcc -o hello $(SRCS)

当我运行它时,我看到这个:

$ make
! make -n all 2>&1 >/dev/null | grep warning
Makefile:17: warning: undefined variable `SRCS'
make: *** [no-make-warnings] Error 1

你只需要让你想要检查的每个目标都依赖于目标no-make-warnings.

如果有人知道如何自动执行此操作,请插话。

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

如何将 Makefile 中的警告视为错误? 的相关文章

随机推荐

  • 如何为对象集合生成唯一的哈希值,而与它们的顺序无关[重复]

    这个问题在这里已经有答案了 假设我有课 public class MyClass public string Type get set public int Id get set 我有一个集合类 它只是一个强类型列表 public clas
  • 在Naoqi 2.5中的pepper平板电脑上安装Android应用程序

    我想使用 NaoQi 2 5 在 Pepper 上安装 Android 应用程序 为了实现这一点 尝试使用 AlTabletService 的隐藏方法 installApk 我在android studios中构建了一个APK并将其部署在p
  • 以无边框形式绘制夹具

    所以我有一个无边框表单 我需要调整它的大小 通过单击 4 个边或角中的任何一个 澄清一下 我希望我的表单像 Windows 7 中的默认便签一样无边框 通过使用 Julien Lebosquain 在这篇文章中提供的代码 我已经让它可以工作
  • 无法通过 OleDb 读取大小超过 ~1mb 的 xlsx 文件

    我想使用 sql 批量复制来加载数据 xlsx文件到数据库 但是 当文件大小超过大约 1mb 时 我遇到了问题 当我尝试打开时OleDbConnection我收到一个错误 No error message available result
  • MYSQL存储多张图片

    我有一个网页 用户可以在其中上传带有图像的文章 用户可以随文章上传的图像数量没有限制 MySQL 数据库中的每一行代表许多文章中的一篇 存储所有这些图像的最佳方式是什么 我知道我会使用 BLOBS LONGBLOBS 但如果我无法控制用户上
  • 如何在Python中可视化距离矩阵? [复制]

    这个问题在这里已经有答案了 我有一个距离矩阵 作为 DataFrame 如下所示 我想为其创建一个像第二个图一样的图来可视化距离 Python中是否有任何可用的绘图对象可以可视化距离矩阵 尝试以下任一方法 NetworkX http net
  • Docker 运行不工作,它说需要至少 1 个参数

    我正在学习 docker 并尝试运行现有的映像 第一个命令工作正常 command 1 docker run name static site e AUTHOR Mathi1 d P dockersamples static site 但下
  • 保持 Git 功能分支最新的策略

    我喜欢让我的功能分支与开发保持同步 频繁执行 git merge no ffdevelopment 有什么问题吗 然后最后运行 git flow feature finish feature1 这些功能分支是共享的 这意味着其他人可能正在处
  • 我需要在 MVC Razor 中对属性值进行编码吗?

    在 cshtml 文件中 我将一个字符串分配给一个属性 例如
  • Android 机器人测试与 Teamcity 的接口

    由于之前没有回答这个问题 也许我没有找到 我调查了以下问题 如何使用robotium在Android设备上执行自动化功能测试 并将其报告给TeamCity等持续集成服务器 由于我没有找到该具体问题的任何答案 因此我进行了调查 以下是我的调查
  • 仅在主页上显示块 HTML?

    我尝试修改家庭控制器添加新变量 data header home true 然后我尝试检查一下header twig模板如下 if header home div Home div else div Not Home div endif 当
  • Qt 5.1 中带有共享 QGLWidgets 的线程 OpenGL 问题

    我使用两个 QGLWidget 一种用于加载纹理 一种用于渲染 但它不起作用 我使用了以下解释http blog qt digia com blog 2011 06 03 threaded opengl in 4 8 http blog q
  • 我可以在我的 Maven Android 项目中使用 AdMob SDK jar 作为依赖项吗?

    我只是将构建过程切换为使用 Maven 我在 Maven 存储库站点上找不到 AdMob 的依赖项 如何手动配置它 例如
  • 计算 Pandas 中各组的同比增长

    我有以下内容dataframe In 1 df Out 1 ID Month Transaction Amount 1 2013 01 10 1 2013 02 20 1 2013 03 10 1 2013 04 20 1 2013 05
  • Swift 协议:方法不会覆盖其超类中的任何方法

    由于 Xcode 6 仍然存在许多 Swift 错误 我不确定是其中之一还是我遗漏了一些东西 我的类采用协议 NSLayoutManagerDelegate 但似乎不可能覆盖我需要的方法 我按照文档描述的那样做 override func
  • 如何创建基于浏览器的系统的安装程序?

    我刚刚开发了一个基于浏览器的员工管理系统 我想知道是否有办法创建安装程序或自解压文件 以便轻松地将系统转移到另一台计算机 我尝试过使用 iexpress exe 和 实际安装程序 但它们似乎只提取到一个目录中 有没有办法让我使用这些应用程序
  • 是否可以同时使用JSP和PHP?

    一个函数是用Java编写的 而另一个函数的API是用PHP编写的 那么 JSP和PHP是否可以同时使用呢 我想说你可以打电话 来自您的Java代码 一种不同的进程来执行 PHP 脚本 然后在 Java 代码中使用该 PHP 脚本的输出 但这
  • 快速排序 - 使其稳定的条件

    如果排序算法保留具有 equals 键的任意两个元素的相对顺序 则该算法是稳定的 快速排序在什么条件下稳定 当没有项被传递时 快速排序是稳定的 除非它具有较小的键 还有哪些条件可以使其稳定 嗯 使用 O N 空间而不是就地不稳定实现使用的
  • 为什么函数体内定义的内置类型的未初始化对象具有未定义的值?

    问题 为什么定义内置类型的未初始化对象inside函数体具有未定义的值 而内置类型的对象已定义outside任何函数的初始化为0 or 举个例子 include
  • 如何将 Makefile 中的警告视为错误?

    是否可以将警告视为 Makefile 中的错误 从而在 Makefile 继续之前退出 此外 是否可以过滤掉哪个警告会产生错误 我的用例 我想使用 warn undefined variables与此结合 当变量未定义时 Makefile