【问题标题】:Install FFTW library on Mac OS X (Mavericks)在 Mac OS X (Mavericks) 上安装 FFTW 库
【发布时间】:2024-12-10 07:30:01
【问题描述】:

我已经下载了 FFTW 库,并按照安装说明在终端上键入这些命令 (http://pblog.ebaker.me.uk/2014/12/installing-fftw-on-os-x-mavericks.html) 以安装 FFTW,但出现此错误。

命令是:

./configure --enable-float --enable-threads
make
make install

错误是:

 ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... configure: error: unsafe absolute working directory name

请问大家有解决办法吗?

【问题讨论】:

  • 使用一个好的包管理器来处理这样的事情要容易得多。例如。安装Homebrew 然后它只是brew install fftw

标签: macos fftw


【解决方案1】:

此错误消息表明您的路径中有非法字符(可能是 $、\、#、"、'、` 之一)。

针对其中一个 cmets,自己构建 fftw 是有意义的,因为根据您的硬件构建 fftw 时有许多不同的选择。很可能您的机器上安装了 AVX2,这在 2014 年撰写该博客时在 Mac 上不太常见。您可能还有多个核心。要创建 single、double 和 long double 库,请使用以下三个代码块:

./configure CC=/usr/local/bin/gcc-7 --enable-openmp --enable-avx2 --enable-threads --enable-shared --prefix=/usr/local
make
sudo make install

./configure CC=/usr/local/bin/gcc-7 --enable-openmp --enable-avx2 --enable-threads --enable-shared --enable-float --prefix=/usr/local
make
sudo make install

./configure CC=/usr/local/bin/gcc-7 --enable-openmp --enable-threads --enable-shared --enable-long-double --prefix=/usr/local
make
sudo make install

当然,/usr/local/bin/gcc-7 应该替换为您要使用的编译器,/usr/local 应该替换为您要安装 fftw 库的路径。如果您不指定编译器路径,则将使用默认的 Apple clang 编译器...目前它不能很好地与 OpenMP 配合使用,因此如果您想通过 OpenMP 使用多线程,则必须使用另一个编译器。

【讨论】: