0

我们的项目包含很多 c++ 源代码,到目前为止,我们一直在使用 make 来构建所有内容,但这需要很长时间。所以我偶然发现了 waf,它工作得很好,并且大大加快了构建速度。然而,每次我进行完整构建时,我都会遇到一些毫无意义的构建错误。如果我现在进行增量构建,大多数情况下第一次无法构建的一些源现在构建,其他一些仍然失败。在另一个增量构建中,我最终将获得成功的构建。

我已经尝试在单独的步骤中构建单独的库,以防万一尝试并行构建任何依赖库,但错误仍然出现。

编辑:我不断收到的错误似乎与我的代码无关,例如

Build failed
 -> task failed (exit status -1):
        {task 10777520: c constr_SET.c -> constr_SET.c.1.o}

在另一个“waf build”之后,我不再收到此错误。

EDIT2:我的库的构建步骤如下所示:

def build(bld):
  bld.shlib(source="foo.cpp bar.cpp foobar.cpp constr_SET.c",
  target="foobar",
  includes= "../ifinc",
  name="foobar",
  use="MAIN RW HEADERS",
  install_path = "lib/")

MAIN、RW、HEADERS 只是我们使用的一些标志和外部库。

有没有人在他们的系统上看到过类似的行为?甚至是解决方案?

4

1 回答 1

1

我怀疑多个目标正在并行构建相同的必需对象。尝试

export JOBS=1

或者

 waf --jobs 1
于 2011-10-07T10:34:14.377 回答