Я пытаюсь запустить код BdG-TMAT. В этой папке находятся и файлы Fortran, и файлы Python, поскольку в основном файле запуска BDG_K.py используются некоторые функции Fortran. Поэтому для запуска кода на языке фортран я использую конвертер f2py, который конвертирует tmatf.f90 в tmatf.so. (f2py поставляется автоматически с NumPy). Я запускаю make из папки BdG-Tmat, где я получаю сообщение об ошибке следующим образом:
gfortran:f77: /tmp/tmpQErUyR/src.linux-x86_64-2.7/potsub-f2pywrappers.f
/usr/bin/gfortran -Wall -Wall -shared /tmp/tmpQErUyR/tmp/tmpQErUyR/src.linux-x86_64-2.7/potsubmodule.o /tmp/tmpQErUyR/tmp/tmpQErUyR/src.linux-x86_64-2.7/fortranobject.o /tmp/tmpQErUyR/potsub.o /tmp/tmpQErUyR/tmp/tmpQErUyR/src.linux-x86_64-2.7/potsub-f2pywrappers.o potsubi.o -lgsl -llapack -lcblas -lgslcblas -lgfortran -o ./potsub.so
/usr/bin/ld: error: cannot find -lcblas
collect2: error: ld returned 1 exit status
/usr/bin/ld: error: cannot find -lcblas
collect2: error: ld returned 1 exit status
error: Command "/usr/bin/gfortran -Wall -Wall -shared /tmp/tmpQErUyR/tmp/tmpQErUyR/src.linux-x86_64-2.7/potsubmodule.o /tmp/tmpQErUyR/tmp/tmpQErUyR/src.linux-x86_64-2.7/fortranobject.o /tmp/tmpQErUyR/potsub.o /tmp/tmpQErUyR/tmp/tmpQErUyR/src.linux-x86_64-2.7/potsub-f2pywrappers.o potsubi.o -lgsl -llapack -lcblas -lgslcblas -lgfortran -o ./potsub.so" failed with exit status 1
make: *** [potsub.so] Error 1
Таким образом, при запуске файла Python в этой папке, я получаю следующую ошибку:
$python BDG_K.py
Traceback (most recent call last):
File "BDG_K.py", line 29, in <module>
import tmatf
ImportError: /home/arpit/Desktop/BdG-Tmat/tmatf.so: undefined symbol: dsbevx_
этот упомянутый символ отсутствует в исходном файле (где это dsbevx вместо dsbevx_)
Пожалуйста, объясните, как правильно установить CBLAS, чтобы устранить первую ошибку и связана ли вторая ошибка с первой. Я попытался сделать исходную папку CBLAS, но она не работает нормально. Я следовал за этим:http://vibrationdata.wordpress.com/2011/11/07/install-cblas-in-ubuntu/ .