有没有办法知道makefile是运行 -j(并行执行)
Is there a way to know that the makefile is running with -j (parallel execution)
GNU Make 的 -j
选项很方便,但您必须注意依赖项。在我的环境中,它加快了构建和测试时间 5-6 倍。但是我想 运行 我的测试覆盖率,这会产生一个问题,因为 gcov
工具不能很好地处理并发,基本上是试图同时写入同一个 .gcda
文件。
我已经想出如何将覆盖率信息引导到每个测试的单独目录中,这很有效。然而,这会招致 post 处理所有覆盖信息的惩罚。
所以我正在寻找一种方法来知道 -j
是否已在调用中使用,以便能够在不需要时自动避免额外的处理。这可能吗?
默认情况下,您应该能够访问用于通过 MAKEFLAGS
调用 make
的参数,这些参数是自动设置的,并且基本上知道如何调用 make 并允许将它们传播到 sub-make 进程。
GNU Make 的 -j
选项很方便,但您必须注意依赖项。在我的环境中,它加快了构建和测试时间 5-6 倍。但是我想 运行 我的测试覆盖率,这会产生一个问题,因为 gcov
工具不能很好地处理并发,基本上是试图同时写入同一个 .gcda
文件。
我已经想出如何将覆盖率信息引导到每个测试的单独目录中,这很有效。然而,这会招致 post 处理所有覆盖信息的惩罚。
所以我正在寻找一种方法来知道 -j
是否已在调用中使用,以便能够在不需要时自动避免额外的处理。这可能吗?
默认情况下,您应该能够访问用于通过 MAKEFLAGS
调用 make
的参数,这些参数是自动设置的,并且基本上知道如何调用 make 并允许将它们传播到 sub-make 进程。