【问题标题】:FFTW on Mac OS X Mavericks issuesMac OS X Mavericks 问题上的 FFTW
【发布时间】:2013-12-06 20:54:00
【问题描述】:

我确信这是一个简单的问题,但我很难完成。我正在使用来自http://www.fftw.org/fftw2_doc/fftw_2.html 的代码 sn-p。我已经安装了库(通过自制软件)。包含文件夹 (/usr/local/include) 有

fftw3.f
fftw3.f03
fftw3.h
fftw3l.f03
fftw3q.f03

这是来自网站的代码 sn-p。我用 fttw.h 和 fttw3.h 都试过了

#include <fftw.h>

int main (int argc, char** argv){
 fftw_complex in[N], out[N];
 fftw_plan p;

 p = fftw_create_plan(N, FFTW_FORWARD, FFTW_ESTIMATE);

 fftw_one(p, in, out);

 fftw_destroy_plan(p);  

     return 0;
}

它一直在扔

fftwtest.c:1:10: fatal error: 'fftw3.h' file not found
#include <fftw3.h>
     ^
1 error generated.

【问题讨论】:

  • 不是这个错误,而是下一个错误:该代码使用 FFTW 的旧版本 2 API,但您安装了当前(向后不兼容)版本。阅读fftw.org/fftw3_doc
  • 如果您只是想在 OS X 上计算 FFT,那么您已经有了可用的 Accelerate 框架,即您不需要使用 FFTW,除非您希望您的代码是跨平台的。

标签: c macos fftw


【解决方案1】:

您需要正确的编译器标志。将/usr/local/include 添加到您的标题搜索路径。这是通过编译器的-I 标志完成的,或者如果您使用的是Xcode,您可以在项目设置中进行设置。

【讨论】:

    【解决方案2】:

    /usr/local/include/usr/local/lib 不再位于 Mavericks 的默认标头搜索路径中。您需要分别使用 -I-L 标志添加它们。

    【讨论】:

    • 有趣的变化......我也没有注意到旧的行为。
    • 我不得不在这里更改一些项目的 makefile。我不喜欢它,但我不做决定,所以...
    • 如何添加这些?
    【解决方案3】:

    我终于能够在一个终端会话中通过以下方式安装 pyfftw:

    brew install fftw
    export DYLD_LIBRARY_PATH=/usr/local/lib
    export LDFLAGS="-L/usr/local/include"
    export CFLAGS="-I/usr/local/include"
    pip install pyfftw
    

    【讨论】:

    • 这对我有用,但有一点小调整:我必须使用export LDFLAGS="-L/usr/local/lib"(使用/lib 而不是/include)。
    • 这对我在 macOS Mojave 上安装最新版本的 pyFFTW 很有用:export LDFLAGS="-L/usr/local/lib"export CFLAGS="-I/usr/local/include"pip install git+git://github.com/pyFFTW/pyFFTW.git
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 2014-05-06
    • 2015-04-28
    • 1970-01-01
    • 2013-12-02
    相关资源
    最近更新 更多