Отсутствует librefblas.a - PullRequest
       88

Отсутствует librefblas.a

1 голос
/ 19 февраля 2020

Попытка скомпилировать некоторый код на Fortran с помощью gfortran 9.xx на моем компьютере с CentOS 7.xx. Иметь конкретную версию кода, которая требует ссылки на LAPACK и BLAS (в частности, liblapack.a и librefblas.a). Установите LAPACK (и все библиотеки -devel) и BLAS (то же самое о -devel libs) (оба доступны в базовом репозитории CentOS).

Хотя я (и, следовательно, компоновщик) не могу найти liblapack.a (он находится в / usr / lib64), нет никаких следов librefblas.a (что заставляет компоновщика горько пожаловаться и компиляция до cra sh и сжечь).

На самом деле я пытался установить BLAS и OpenBLAS на одну и ту же машину, но это не помогло - librefblas.a до сих пор нигде не найти.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2020

Первое, что нужно попробовать, это использовать обычный libblas. Либо измените ваш Makefile на использование libblas вместо librefblas, либо создайте символическую ссылку. Затем проверьте, есть ли у вас неразрешенная ссылка. Или сделайте то же самое для OenBLAS и укажите свой make-файл на libopenblas. Обратите внимание, что OpenBLAS также включает LAPACK.

Справочная информация: BLAS и LAPACK являются общедоступными интерфейсами. Доступна эталонная реализация, но также есть много альтернативных оптимизированных или машинно-определенных c. Не должно иметь значения, какой из них вы используете, поэтому нет необходимости специально запрашивать эталонный. Обычно ваш Linux дистрибутив libblas в любом случае является эталонным. Вероятно, это просто причуда вашего Makefile.

0 голосов
/ 21 февраля 2020

нет следов librefblas.a

Сборка пакета CentOS 7 lapack-3.4.2-8.el7 не создает и не устанавливает файл librefblas.a. Т.е. нет доступного пакета, предоставляющего /usr/lib64/librefblas.a. Пакет blas-stati c предоставляет только один файл: /usr/lib64/libblas.a

Сборка librefblas.a:

tar xvf lapack-3.4.2-clean.tgz
https://src.fedoraproject.org/repo/p....4.2-clean.tgz
cd lapack-3.4.2/
cp make.inc.example make.inc
make blaslib

... И librefblas.a будет создано.

...