Наш проект содержит много исходников на С++, до сих пор мы использовали make для сборки всего, однако это занимает много времени. Итак, я наткнулся на waf, который неплохо работает и значительно ускоряет сборку. Однако каждый раз, когда я делаю полную сборку, я получаю пару ошибок сборки, которые не имеют смысла. Если я сейчас выполняю инкрементную сборку, в большинстве случаев некоторые исходные коды, которые не удалось собрать с первого раза, будут собраны сейчас, а некоторые другие по-прежнему терпят неудачу. В другой инкрементной сборке я, наконец, получу успешную сборку.
Я пробовал создавать отдельные библиотеки отдельными шагами на случай, если какие-либо зависимые библиотеки попытаются построить параллельно, но ошибки все равно появляются.
EDIT: Ошибки, которые я продолжаю получать, похоже, не имеют ничего общего с моим кодом, например.
Build failed
-> task failed (exit status -1):
{task 10777520: c constr_SET.c -> constr_SET.c.1.o}
После очередной "сборки waf" я больше не получаю эту ошибку.
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 — это лишь некоторые флаги и внешние библиотеки, которые мы используем.
Кто-нибудь видел подобное поведение в своей системе? Или хотя бы решение?