0

我正在我的 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 依赖项工作正常。

谢谢,

4

1 回答 1

0

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

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

于 2013-04-11T10:58:47.890 回答