2015-06-24 4 views
0

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

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_ и т. д. Я урезал вывод. Почему это происходит?

+0

Эта ошибка не от компилятора, а от компоновщика. По-видимому, отсутствует либрай или по другому пути. (отказ от ответственности: я не знаю об атласе, поэтому я не могу быть более конкретным). – Olaf

+0

Я подозреваю, что вы создали свой исполняемый файл, и вы перенесли его куда-то, кроме того, где он был, когда вы его скомпилировали (или, может быть, нет), и теперь он не может найти библиотеку. Вам нужно либо установить «rpath» во время ссылки, либо установить и экспортировать «LD_LIBRARY_PATH», указывая на каталог, содержащий его. [** Статические, общие динамические и загружаемые библиотеки Linux **] (http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html) - достойный учебник. См. [** Связывание библиотек LAPACK/BLAS **] (http://stackoverflow.com/questions/2801297/linking-lapack-blas-libraries?rq=1). –

+0

Я экспортировал 'LD_LIBRARY_PATH'. Ссылка, которую вы отправили, не помогает. Все функции не будут связаны, а не только некоторые. – avak

ответ