Установка P3DFFT

Я устанавливаю P3DFFT в человечности. Я загрузил ".tar.gz" файл для него и извлек. Затем используемый "./настраивала" команда. Настраивание дало следующую ошибку, "configure:error:You должен принять решение использовать или ESSL или FTTW", у меня есть istalled lib FTTW перед P3DFFT. Помогите мне на этой ошибке.

Спасибо

1
задан 16 May 2018 в 16:05

1 ответ

Поскольку Вы не указываете свою версию Ubuntu, я протестировал метод ниже на два, поддерживал версии LTS - Ubuntu 16.04 LTS (Гостеприимный Xerus) и Ubuntu 18.04 LTS (Бионический Бобр).


Установите FFTW-связанные пакеты разработчика и зависимости сборки. Не забывайте включать репозитории исходного кода в программном обеспечении и Обновлениях (software-properties-gtk) перед продолжением.
Затем выполненный:

sudo apt-get install -y libfftw3-dev libfftw3-mpi-dev libopenmpi-dev gfortran
sudo apt-get build-dep -y libfftw3-dev libfftw3-mpi-dev

Загрузите и извлеките пакет P3DFFT:

cd ~/Downloads
wget https://github.com/sdsc/p3dfft/archive/v2.7.6.tar.gz
tar -xf v2.7.6.tar.gz
cd p3dfft-2.7.6/

Поскольку это было уже записано @steeldriver:

Первая вещь отметить состоит в том что аргумент --with-fftw должен быть высокоуровневый путь к заголовочным файлам FFTW3 и библиотекам. Так, например, если заголовки находятся в /usr/include и библиотеки находятся под /usr/lib (значение по умолчанию, когда пакет libfftw3-dev установлен из репозитория Ubuntu), значение должно быть дано как --with-fftw=/usr

Дополнительная проблема в этом случае - то, что обеспеченные настраивают сценарий, кажется, соединен проводами для заглядывания только lib и lib64 подкаталоги:

   3315         if test -e $withfftw/lib/libfftw3.a ; then
   3316                 FFTW_INC="-I$withfftw/include"
   3317 
   3318                 FFTW_LIB="$withfftw/lib/libfftw3.a"
   3319 
   3320         elif test -e $withfftw/lib64/libfftw3.a ; then
   3321                 FFTW_INC="-I$withfftw/include"
   3322 
   3323                 FFTW_LIB="$withfftw/lib64/libfftw3.a"
   3324 
   3325         else
   3326                 as_fn_error $? "libfftw3.a was not found in given location!" "$LINENO" 5
   3327         fi

Использование a lib64 подкаталог является старой конвенцией, которая предшествует платформе Мультидуги Debian - современное местоположение для 64-разрядных библиотек было бы lib/x86_64-linux-gnu

Таким образом, необходимо исправить настраивать сценарий. Можно сделать это с командами ниже:

sed -i 's/\$withfftw\/include/\/usr\/include/g' configure
sed -i 's/\$withfftw\/lib64\//\$withfftw\//g' configure
sed -i 's/\$withfftw\/lib\//\$withfftw\//g' configure

Затем выполненный новый исправленный настраивают сценарий с корректными опциями:

./configure --enable-fftw --with-fftw=/usr/lib/x86_64-linux-gnu

Затем выполните компиляцию и установку:

make
sudo make install
1
ответ дан 7 December 2019 в 15:19

Другие вопросы по тегам:

Похожие вопросы: