Зависимости сборки Ubuntu - libblas - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь создать пакет, который зависит от BLAS (подпрограммы базовой линейной алгебры).В настоящее время мой файл Debian / control выглядит следующим образом:

Build-Depends: gfortran, libblas3

Зависит от: gfortran, libblas3, ${shlibs:Depends}

Он собирается без каких-либо ошибок на моем компьютере.Однако, если я загружаю его в PPA, сборка завершается неудачно.Я вижу в журнале, что libblas3 установлен, и все же в конце я получаю:

ld --shared -o libXXX.so.X.Y  *.o -lblas -lc
ld: cannot find -lblas

Почему он не находит libblas?

1 Ответ

0 голосов
/ 23 октября 2018

Ваша зависимость времени выполнения (Depends:) включена libblas3.Но ваша зависимость время сборки (Build-depends:) находится в пакете разработки libblas, который libblas-dev.

Флаг компоновщика -lblas указывает компоновщику найтии свяжите библиотеку, на которую ссылаются libblas.so (общая библиотека) или libblas.a (статическая библиотека).Пакет времени выполнения libblas3 установит специально версионную библиотеку, например, libblas.so.3.7.1, но не libblas.so.Пакет разработки libblas-dev будет не устанавливать специально версионную библиотеку, но будет устанавливать libblas.so, что делает его символической ссылкой на специально версионную библиотеку.

Существуетаналогичные отношения между любым пакетом времени выполнения библиотеки libfoo и его пакетом разработки libfoo-dev.

...