我们的项目包含很多c ++源代码,到目前为止我们一直在唱歌来构建所有内容,但这需要很长时间。所以我偶然发现了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只是我们使用的一些标志和外部库。
有没有人在他们的系统上看到类似的行为?甚至是解决方案?
答案 0 :(得分:1)
我怀疑多个目标并行构建相同的必需对象。试试
export JOBS=1
或
waf --jobs 1