Создание пакетов расширения Python для панели запуска

У меня есть проект автоинструментов (C++), для которого я создаю пакеты на панели запуска ppa

Недавно я попытался добавить пакет Python к тому архиву. Я протестировал его локально с bzr dh-make и также использование pbuilder. Обе работы фантастически. На панели запуска, хотя никакая радость.

Один из журналов сборок здесь

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

Вот Makefile.am с добавленной целью модуля Python: ошибка в панели запуска входа в систему сборки заканчивает тем, что говорила:

/usr/bin/ld: cannot find -lvalhalla
collect2: error: ld returned 1 exit status
libtool:   error: error: relink 'valhalla.la' with the above command before installing it
Makefile:2265: recipe for target 'install-pyexecLTLIBRARIES' failed
make[3]: *** [install-pyexecLTLIBRARIES] Error 1

То, что нечетно, - то, что не все они перестали работать. Возможно, это - что-то, чтобы сделать с параллелизмом.

Я заметил, что команда, которую это выполняет, make -j4 install и затем при пересоединении это, кажется, говорит, не может найти -lvalhalla который является названием основной библиотеки, проект создает. Это, кажется, устанавливает несколько вещей одновременно, возможно, это - проблема. Возможно, я могу переопределить просто dh_auto_install цель в debian/rules файл?

Похож на кого-то еще, может подтвердить то же как, что я вижу в этом списке.

1
задан 23 May 2017 в 15:39

1 ответ

Так действительно действительно оказывалось, что проблема относилась к параллельным сборкам и в особенности в конце, когда модуль Python повторно связывается, другой материал еще не был установлен. Фиксация была также действительно меньшим количеством фиксации и большим количеством работы вокруг и точно, что я предложил.

А именно, я просто добавил эту цель к моему debian/rules файл:

#because python module depends on main library and somehow dependency is not known we must limit parallelism
override_dh_auto_install:
    dh_auto_install --max-parallel=1

Эти --max-parallel=1 бит ограничит его выполнением make -j1 install, который избежит состояния состязания, где libtool ищет lib, который еще не является там (описан в ссылке выше) при пересоединении модуля Python.

1
ответ дан 7 December 2019 в 15:42

Другие вопросы по тегам:

Похожие вопросы: