Мне нужна помощь по установке LAPACK (для Fortran 95) на машину Fedora.
Я пишу это сообщение после того, как попробовал все ответы, опубликованные на соответствующие запросы на этом форуме.
Я попробовал два разных варианта:
МЕТОД 1
Я прямо скачал библиотеку lapack95.a отсюда (http://www.netlib.org/lapack95/, файл с именем lapack95_linux_redhat.tgz.После разархивирования я мог получить файл lapack95.a
После поиска некоторых ответов о том, как связать и использовать библиотеки, я написал пробный код и сохранил в файле try.f90, а затем выполнил следующее
gfortran -c try.f90
gfortran -o try try.o -L/(name of directory where lapack95.a
was present. I put it in the same directory
as try.f90)/ -llapack95
( Файлы Fortran try.f90 и lapack95.a находились в одном каталоге )
Я получил следующую ошибку:
/usr/bin/ld: cannot find -llapack95
collect2: error: ld returned 1 exit status
Iискал в интернете и нашел здесь (https://forums.fedoraforum.org/archive/index.php/t-248227.html), что нам нужно установить lapack-devel. Я сделал это и получил тот же результат.
Метод 2
Я также попытался выполнить вышеуказанную команду (в методе 1), но без пробелаween / и -llapack95, то есть как:
gfortran -o try try.o -L/(name of directory where lapack95.a
was present I put it in the same directory
as try.f90)/-llapack95
и получил следующую ошибку:
try.o: In function `MAIN__':
try.f90:(.text+0xdb): undefined reference to `sgesv_'
collect2: error: ld returned 1 exit status
Метод 3
После отсутствияУдачи, подумал я, может быть, это не очень хорошая идея использовать скачанный файл lapack95.a.Я должен построить его из оригинальных файлов.
Я понял, что, может быть, мне нужно установить lapack95 с помощью соответствующих средств, после чего по той же ссылке http://www.netlib.org/lapack95
я скачал файл lapack95.tgz и следовал инструкциям в файле readme. (который сказал просто запустить make file в SRC)
Я сделал некоторые изменения:
FC1 = f95 -fixed to
FC1 = f95
и
OPTS0 = -u -V -dcfuns -dusty -ieee=full
до
OPTS0 = -u -V
(как предложено для https://www.reddit.com/r/linux4noobs/comments/7tgmb9/fortran_library_netlib_lapack95_installation_error/)
Я ожидал, что библиотека будет создана в / usr / lib / или usr / local / lib как LAPACK3, но не смог ее найти.
Infactпроизошла ошибка (и поэтому не могло быть файла .a)
f95 -free -c -u -V - -I./../lapack95_modules f77_lapack_double.f90 f95: ошибка: -E или -x требуется, если ввод осуществляется из стандартного ввода make: *** [../make.inc:45: f77_lapack_double.o] Ошибка 1
Я не уверен, что какой-либо из моих методов подходит. Я ожидал, что метод1, чтобы работать, поскольку я связываю библиотеку локально, но ошибка во всех 3 случаях.
Пожалуйста, подскажите. Спасибо