GNU Make:使用带有隐式规则的通配符函数

2023-12-07

我有一个看起来像这样的项目结构:

.
└── src
    ├── Module1
    │   ├── source1.cc
    │   ├── source2.cc
    │   └── source3.cc
    ├── Module2
    │   ├── source1.cc
    │   ├── source2.cc
    │   └── source3.cc
    └── Module3
        ├── source1.cc
        ├── source2.cc
        └── source3.cc

我有一个隐式规则,将为每个源文件创建一个目标文件,并维护目录结构(例如src/Module1/source2.cc将编译为obj/Module1/source2.o).

但是,我现在希望有一个隐式规则来为每个模块创建存档文件。例如,每个目标文件编译自src/Module2将被添加到obj/Module2.a。我的第一个想法看起来与我的目标文件隐式规则非常相似:

obj/%.a: $(wildcard obj/%/*.o)
    @mkdir -p $(@D);
    ar -crs "$@" $^;

这会将编译目标文件的工作转嫁给其他隐式规则。然而,这里的问题是%字符未扩展。

有没有办法访问%来自通配符函数调用中的隐式规则?


你可以这样做二次扩张:

.SECONDEXPANSION:
obj/%.a: $$(wildcard obj/%/*.o)
    @mkdir -p $(@D);
    ar -crs "$@" $^;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GNU Make:使用带有隐式规则的通配符函数 的相关文章

随机推荐

  • 使用反应式扩展创建多个计时器

    我有一个非常简单的类 我用它来轮询目录中的新文件 它有位置 开始监视该位置的时间以及再次检查的时间间隔 以小时为单位 public class Thing public string Name get set public Uri Uri
  • 使用 Spring Security 检查额外参数

    请在Spring Security中给出提示 如何在用户登录期间检查附加参数 例如 不仅要检查 用户名 和 密码 还要检查他是否通过电子邮件链接确认注册 所有数据都存储在数据库中 我可以通过 UserDetailsS ervice 的实现轻
  • 什么CSS元素控制引导滚动间谍活动/悬停?

    http examine com v5x creatine html summary 将鼠标悬停在摘要上 控制它的 CSS 是什么 我好像找不到啊 Active active类 对于大多数 Bootstrap 功能来说都是如此 Hover
  • 为什么我无法用C#向本地数据库(SQL精简版)插入数据?

    我正在 Visual Studio 上做一个项目 我正在使用本地数据库 空的sql server精简版 我选择了数据集并创建了我的表 图像 它有一个主要的自动增量 id 列和一个 nvarchar ImagePath 列 我想在其中插入数据
  • 在 django 中选择不同的单独列?

    我很好奇是否有任何方法可以在 Django 中执行不是 的查询 SELECT FROM 在下面 我正在尝试做一个 SELECT DISTINCT columnName FROM 反而 具体来说 我有一个如下所示的模型 class Produ
  • 同时调用 primefaces 中的多个 bean 方法

    我正在使用 primefaces 4 0 构建一个 Web 应用程序 我想在单击命令按钮时同时调用两个 bean 方法 我尝试使用远程命令
  • 多父树(或有向图)实现sql server 2005

    我需要在 SQL Server 2005 上实现多父树 或有向图 我读过几篇文章 但大多数都使用具有独特根的单亲树 如下所示 My PC Drive C Documents and Settings Program Files Adobe
  • 为什么克隆 DIV 中的 SELECT 在刷新时会出现错误行为?

    我正在使用 jQuery Mobile 的 clone 函数来克隆表单中的 div 这样我就可以拥有可重复的部分 但现在我遇到了嵌套选择的问题 一旦 div 被克隆并且嵌套选择被新的 id 更新 下一次 刷新 后就会发生一些奇怪的事情 发生
  • C++ 中 100 位数字的平方根

    无符号长长 最多可以解出15位数字 有没有办法求a的平方根100位数字 你也可以使用Boost 多精度图书馆 该库为一些流行的多精度实现提供了包装器 include
  • 截图应用,可以在任何视图下截图

    我知道可以在您自己的应用程序中截取屏幕截图 但我想知道是否有可能有一个应用程序允许您在打开应用程序时在任何视图中截取屏幕截图 我很确定这是不可能的 但我只是想仔细检查一下 谢谢 不可以 您无法与 iOS 沙箱之外的其他应用程序进行交互
  • 运行作为 Junit 插件测试运行的测试用例时没有可运行的方法

    我已经为 eclipse RCP 应用程序创建了测试用例 Test public final void testIsCacertsFileExist try URL url new URL https server web services
  • Native SQL(使用 MySQL)与使用 Hibernate ORM 的性能差异?

    我正在将 Spring MVC 用于涉及多级管理后端和客户 成员前端的应用程序 该项目最初启动时没有框架 只有简单的本机 JDBC 调用来进行数据库访问 随着项目的显着增长 一如既往 我进行了更重要的数据库调用 有时会查询较大的选择大小 我
  • Eclipse JUNO 无法启动

    当我启动 Eclipse 时 它 没有启动 出现错误并告诉我查看日志文件 查看日志文件 Users max work projects metadata log 操作系统 MacOS 10 7 4日食 4 2 朱诺 ADT 20 我的旧版本
  • Spring MVC @ModelAttribute 方法返回“错误请求”400

    再会 我遇到一个问题 我尝试发送带有某些属性的 POST 请求 但收到 错误请求 响应 这是我的控制器 Controller RequestMapping group public class GroupController private
  • Jar 文件 - 阻止访问源代码

    我想将一个小型 Java 应用程序作为可运行的 jar 移交 但我不希望任何人访问我的源代码 我是否正确地假设 jar 文件中不包含源代码 java 文件 用户269799 假设你不这样做putjar 文件中的 java 文件 它们不会神奇
  • 使用“data”参数编写函数

    我想编写一个函数 它可以将数据框中的列或列名称及其来自的数据帧作为参数 df lt data frame x c 1 5 y c 6 10 z LETTERS 1 5 my fxn lt function aaa bbb ccc data
  • 当我在客户端上执行 Facebook.requestCredential 时,如何获取 Meteor 中的凭证秘密?

    我正在尝试实现一个像这样的登录 链接帐户系统question 向下滚动到 显式关联方法 的位置 您过去可以通过以下方式获取用户的登录数据 data Package facebook Facebook retrieveCredential t
  • jFileChooser 作为表格中的单元格编辑器[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想将 jFileChooser 设置为表的单个单元格的编辑器 不是该表的整个列
  • PCA 分析后的特征/变量重要性

    我对原始数据集进行了 PCA 分析 并根据 PCA 转换后的压缩数据集选择了我想要保留的 PC 数量 它们解释了几乎 94 的方差 现在 我正在努力识别缩减数据集中重要的原始特征 如何在降维后的剩余主成分中找出哪个特征重要 哪个特征不重要
  • GNU Make:使用带有隐式规则的通配符函数

    我有一个看起来像这样的项目结构 src Module1 source1 cc source2 cc source3 cc Module2 source1 cc source2 cc source3 cc Module3 source1 cc