2012-05-18 7 views
4

Я пытаюсь скомпилировать программу, которая использует lapack.ссылка lapack проблема

Во-первых, я установил LAPACK, устанавливая все пакеты с помощью 'Sudo APT-получить установку' по этой ссылке: https://launchpad.net/ubuntu/precise/+source/lapack

Я пытаюсь скомпилировать код на этой странице: http://www.nag.com/lapack-ex/examples/source/dgbsv-ex.f

I получил эту программу из: http://www.nag.com/lapack-ex/lapack-ex.html

Я попытался скомпилировать программу, набрав

$gfortran dbgsv-ex.f -llapack -lblas 

в терминале

я получаю кучу сообщений об ошибках, все формы

/usr/lib/gcc/i686-linux-gnu/4.6/../../../../lib/liblapack.so: undefined reference to   
`ATL_strsv' 

т.е. сообщения об ошибках заканчиваться ATL_xxxx. Также обратите внимание, что когда я смотрю в своем /usr/lib/, я вижу файл под названием liblapack.so

+3

Похоже, ваша библиотека LAPACK построена на ATLAS. Проверьте, установлен ли ATLAS, и добавьте ссылку на '-latlas' или ссылку непосредственно с' -llapack_atlas'. –

+0

Я установил атлас, набрав 'sudo apt-get install libatlas-dev libatlas-doc libatlas-test libatlas-base-dev libatlas3gf-base libatlas-cpp-0.6-dev libatlas-cpp-0.6-1 libatlas-cpp-0.6-1 -dbg' Затем попытался скомпилировать по-прежнему и получил те же сообщения об ошибках, затем я попытался скомпилировать, набрав 'gfortran dbgsv-ex.f -L/usr/local/lib -llapack -lblas -latlas', и я получил ошибку говоря '/ usr/bin/ld: не могу найти -latlas'. В случае, когда имел значение заказ, я даже попытался установить -latlas перед -lblas или до -llapack. Я получил ту же ошибку с -llapack_atlas – db1234

+2

Это, похоже, некоторая старая ошибка в пакетах Debian/Ubuntu. Вы можете прочитать больше [здесь] (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598638). –

ответ

1

Как уже отмечалось в других комментариях, ваша система имеет реализацию LAPACK ATLAS. Правильный порядок библиотеки связей (для непоточных версий ATLAS) будет тогда:

-llapack -lf77blas -lcblas -latlas 

Также обратите внимание, что ваш Fortran код, кажется, содержит также подпрограмму из NAG библиотеки (x04cef), так что вы необходимо будет также связать библиотеку NAG.

Смежные вопросы