Команды неявно пронизаны в Makefiles? - PullRequest
0 голосов
/ 16 июня 2010

У меня есть «супер» make-файл, который запускает два «sub» файла make:

libwebcam: @echo -e "\ nВызов libwebcam make."$ (MAKE) -C $ (TOPDIR) / libwebcam

uvcdynctrl: @echo -e "\ nВоззов uvcdynctrl make."$ (MAKE) -C $ (TOPDIR) / uvcdynctrl

uvcdynctrl использует libwebcam ... Я заметил, что эти две сборки запускаются как отдельные потоки командой make!Таким образом, иногда библиотека недоступна, когда начинается сборка uvcdynctrl, и я получаю ошибки.По умолчанию, make не должен запускать команды как потоки, поскольку это доступно только через -j (количество заданий), и, согласно руководству по make, по умолчанию нет потоков.Я запускаю это на Ubuntu.

Кто-то сталкивался с такой же проблемой?

Apple92

Ответы [ 2 ]

0 голосов
/ 16 июня 2010

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

В make-файле uvcdynctrl сделайте libwebcam обязательным условием для uvcdynctrl и вставьте правилодля создания libwebcam.

0 голосов
/ 16 июня 2010

Они не должны создаваться одновременно, если вы не укажете аргумент -j для вызова на верхнем уровне. Если вы делаете это, то вам нужно правильно настроить зависимости, чтобы заметить, что uvcdynctrl зависит от libwebcam.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...