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