问题描述
GNU Make的-j
选项很方便,尽管您必须注意依赖项。在我的环境中,它加快了5-6倍的构建和测试时间。但是我想在覆盖范围内运行测试,这会造成一个问题,因为gcov
工具无法很好地处理并发,基本上是尝试同时写入相同的.gcda
文件。
我已经弄清楚了如何将覆盖率信息引导到每个测试的单独目录中,这是可行的。但是,这会导致对所有覆盖率信息进行后处理的代价。
因此,我正在寻找一种方法来确定调用中是否使用了-j
,以便能够在不需要时自动避免进行额外的处理。有可能吗?
解决方法
默认情况下,您应该能够访问用于通过MAKEFLAGS
来调用make
的参数,该参数是自动设置的,基本上可以知道如何调用make并将其传播到子make中。进程。