ATLAS-LAPACK не связывается с BLAS

Я перешел к стандартной компиляции ATLAS. Все тесты проходят, но когда я пытаюсь скомпилировать с помощью следующей команды:

gcc prog.c -o prog -I/home/atlas_build/include -L/home/atlas_build/lib -llapack -lcblas -lm

Выдает кучу ошибок:

dsyevr.f:(.text+0xbb): undefined reference to `lsame_'
dsyevr.f:(.text+0xe3): undefined reference to `lsame_'
dsyevr.f:(.text+0x102): undefined reference to `lsame_'
dsyevr.f:(.text+0x125): undefined reference to `lsame_'
dsyevr.f:(.text+0x148): undefined reference to `lsame_'
/home/atlas_build/lib/liblapack.a(dsyevr.o):dsyevr.f:(.text+0x1ac): more undefined references to `lsame_' follow
/home/atlas_build/lib/liblapack.a(dsyevr.o): In function `dsyevr_':
dsyevr.f:(.text+0x39e): undefined reference to `xerbla_'
dsyevr.f:(.text+0x742): undefined reference to `dscal_'
dsyevr.f:(.text+0x7cb): undefined reference to `dscal_'
dsyevr.f:(.text+0x9cb): undefined reference to `dcopy_'
dsyevr.f:(.text+0xa15): undefined reference to `dcopy_'
dsyevr.f:(.text+0xa84): undefined reference to `dcopy_'
dsyevr.f:(.text+0xac2): undefined reference to `dcopy_'
dsyevr.f:(.text+0x1146): undefined reference to `dscal_'
dsyevr.f:(.text+0x124b): undefined reference to `dswap_'

Он продолжает и продолжает жаловаться на отсутствие функций BLAS, таких как dscal_, dcopy_ и т. д. Я усек вывод. Почему это происходит?


person avak    schedule 24.06.2015    source источник
comment
Эта ошибка не от компилятора, а от компоновщика. Очевидно, библиотека отсутствует или находится на другом пути. (отказ от ответственности: я не знаю об Атласе, поэтому не могу быть более конкретным).   -  person too honest for this site    schedule 25.06.2015
comment
Я подозреваю, что вы собрали свой исполняемый файл и переместили его куда-то, кроме того, где он был, когда вы его скомпилировали (или, может быть, нет), и теперь он не может найти библиотеку. Вам нужно либо установить rpath во время ссылки, либо установить и экспортировать LD_LIBRARY_PATH, указывающий на каталог, содержащий его. Статические, совместно используемые динамические и загружаемые библиотеки Linux годный учебник. Сначала см. раздел Связывание библиотек LAPACK/BLAS.   -  person David C. Rankin    schedule 25.06.2015
comment
Я экспортировал LD_LIBRARY_PATH. Присланная вами ссылка не помогает. Все функции не будут связаны, а не только некоторые.   -  person avak    schedule 25.06.2015
comment
вы должны связать с fortran blas -lblas   -  person ztik    schedule 25.06.2015
comment
^ Привет, как мне это сделать? Кажется, у меня нет -lblas. Я попытался связать с -lf77blas, но у меня это не сработало.   -  person avak    schedule 25.06.2015


Ответы (1)


Решил это. Нужно связать с lgfortran.

person avak    schedule 21.08.2015