【问题标题】:executing commands inside makefile在makefile中执行命令
【发布时间】:2012-04-10 23:40:10
【问题描述】:

我正在我的 makefile 中执行以下命令。当我必须打开 file2 时,它给了我一个错误。换句话说,如果基于我选择的开关在 file1.c 中有任何更改,则 make 在这一行完全失败。

unifdef -DSW1 -DSW2 -USW3 file1.c >file2.c

好的,unifdef 是一个为我进行部分预处理的实用程序。 file1.c 是 unifdef 的输入,file2.c 是输出。我的 makefile 简单明了,我对 file1.c 或 file2.c 没有任何依赖关系。 Makefile 依赖项工作正常。

谢谢,

【问题讨论】:

  • 您遇到了什么错误?为什么你认为这与make 有关,但没有显示你的Makefile 的任何部分?
  • 这是与file1file2 之间的依赖关系相关的操作吗?还有什么?
  • 查看您之前的问题,我发现它们也相当不精确和轻描淡写。也许阅读wow to ask 文档可以为您将来的问题提供一些指导。您需要记住的是,当您一直在解决问题并知道您想做什么时我们没有任何上下文,因此您必须告诉我们.

标签: bash makefile gnu-make


【解决方案1】:

默认情况下,如果 unifdef 对输入文件进行任何更改,它会以状态码 1 退出。 Make将此视为失败。您可以通过在命令前加上 -

来告诉 make 忽略退出状态

unifdef 2.7 版(于 2013 年 3 月发布)有一个 -x 选项来控制退出状态逻辑,因此它与 make 配合得更好。您可能想要使用 -x1 以便 make 确保 unifdef 确实进行了更改。见http://dotat.at/prog/unifdef/

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2023-03-06
    • 2023-03-12
    相关资源
    最近更新 更多