2012-11-18 6 views
6

Я прочитал все руководство по установке ATLAS, и в нем говорится, что все, что вам нужно для создания общих (.so) библиотек, должно передать флаг --shared в скрипт configure. Тем не менее, когда я строю, только .so файлы, которые появляются в моей lib папке libsatlas.so и libtatlas.so, хотя руководство говорит, что должно быть шесть других:Создание общих библиотек в ATLAS

libatlas.so, libcblas.so, libf77blas.so, liblapack.so, libptcblas.so, libptf77blas.so 

После установки некоторых из тестов не потому, что эти библиотеки отсутствует. Кроме того, FFPACK хочет использовать эти библиотеки во время установки.

С кем это столкнулось? Что я делаю неправильно?

+0

Как передать флаг --shared в скрипт configure? –

ответ

5

По моему опыту, это намного сложнее, чем это, см. Нашу реализацию EasyBuild процедуры сборки ATLAS по адресу https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/a/atlas.py.

Нам нужно:

  • включить -fpic параметр компилятора
  • запустить 'сделать общий cshared ptshared cptshared' в каталоге 'Lib'

Мы даже не используем - -shared для configure, вероятно, потому, что он мало что делает.

Если вы хотите построить ATLAS (и все, с чем вы будете связывать его) без головных болей, загляните в EasyBuild.

(отказ от ответственности: Я разработчик EasyBuild)

+0

Как включить параметр -fPIC-компилятор? –

+0

@ 郭 同 jet_ 专心 см https://github.com/hpcugent/easybuild-easyblocks/blob/c2a9fe50fcdb77708f47eb1edfa378a8a848808d/easybuild/easyblocks/a/atlas.py#L123 В принципе, можно настроить ATLAS с '' -FA ALG -fPIC'' –

0

First if you have incorrectly specified the --force-tids flag for configure then the parallel libs won't build. To check this you can run make ptcheck. У меня есть вопрос относительно спецификации этого флага. here

Тогда, если я рассмотрю полученный в результате файл ATLAS Makefile, он скажет: «... только когда атлас построен в одну библиотеку», и действительно, создаются только две «живые» библиотеки: libsatlas. так и libtatlas.so.

Я хочу, чтобы вы могли либо связать FFPACK с этими библиотеками, либо изменить полученный файл ATLAS Makefile, чтобы он содержал нужные вам цели (что не будет слишком сложно, поскольку доступны статические библиотеки).

0

Мне пришлось вручную создавать ссылки на .so.3 файлы. Итак, файлы с версией библиотеки существовали, но не файлы, которые искали cmake.

Запуск

sudo ln -s libatlas.so.3 libatlas.so 
sudo ln -s libcblas.so.3 libcblas.so 
sudo ln -s liblapack_atlas.so.3 

(я не строил cblas, атлас или LAPACK, но установил их с APT-получить. Хочет знать, почему ссылки не создается автоматически).