gnu-make - 通过更改执行顺序触发(并行)GNU make 中缺少的依赖项

标签 gnu-make

假设我有一个 Makefile:

a.out:
    sleep 3
    touch a.out a1

b.out:
    cat a1 > b.out

c.out: a.out b.out
    cat a.out b.out > c.out

make c.out 通常 会成功,因为 a.out 命令在 b.out 命令之前执行。但是 make b.out 会失败(在干净的目录中),make -j c.out 也会失败。

因为在现实生活中很少有 sleep 3,因此错误只会非常随机地出现,我正在寻找一种方法来排除此类错误的可能性更高。一个想法是颠倒“同一级别”目标的执行顺序:由于测试套件通常会触发第一代 a.out,然后是 b.out,如果不是先生成 b.out,则错误将表面。

GNU make 有办法做到这一点吗?

最佳答案

Paul Smith 在 help-make@gnu.org 上回复这对于当前的 GNU make 是不可能的。

关于gnu-make - 通过更改执行顺序触发(并行)GNU make 中缺少的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9437459/

相关文章:

c - GNU 如何跟踪文件更改?

makefile - GNU 制造商 : warning: ignoring old commands for target `xxx'

gnu-make - GNU make : Timing a build,是否有可能有一个目标,在所有目标完成后其配方将执行

gnu-make - GNU Makefile 和 bash - 转义

makefile - GNU 制作 : variable for command line arguments

makefile - 如何导入 yaml 文件以在 gnu make 文件中使用它?

c++ - 如何编写具有单独的源目录和头目录的 Makefile?

c++ - *** 没有规则使目标 'class.cpp' 需要 `build/....x86/class.o` 停止。 Ubuntu 中的错误

css - 如何在 Makefile 中使用 wc 来监视更改并在每次更新时运行命令?

gnu-make - 如何访问 Makefile.am 文件顶部定义的用户定义变量?