Waf-ошибки при сборке c ++ - PullRequest
       15

Waf-ошибки при сборке c ++

0 голосов
/ 07 октября 2011

Наш проект содержит много исходных текстов на c ++, до сих пор мы пели для того, чтобы собрать все, но это занимает много времени. Поэтому я наткнулся на waf, который работает довольно хорошо и значительно ускоряет сборку. Однако каждый раз, когда я делаю полную сборку, я получаю пару ошибок, которые не имеют смысла. Если я сейчас делаю инкрементную сборку, большую часть времени некоторые источники, которые не могли быть собраны с первого раза, создаются сейчас, а некоторые другие все еще не работают. В другой инкрементной сборке я наконец получу успешную сборку.

Я пытался создавать отдельные библиотеки отдельными шагами, на случай, если какие-либо зависимые библиотеки будут пытаться построить параллельно, но ошибки все равно появляются.

РЕДАКТИРОВАТЬ: Ошибки, которые я продолжаю получать, похоже, не имеют никакого отношения к моему коду, например,

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

После очередного "ваф билда" эта ошибка больше не появляется.

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 - это лишь некоторые флаги и внешние библиотеки, которые мы используем.

Кто-нибудь видел подобное поведение в их системе? Или даже решение?

1 Ответ

1 голос
/ 07 октября 2011

Я подозреваю, что несколько целей строят один и тот же требуемый объект параллельно. Попробуйте

export JOBS=1

или

 waf --jobs 1
...