【问题标题】:"fftw.h not found" after installing it in Mac terminal在 Mac 终端中安装后出现“fftw.h not found”
【发布时间】:2018-12-26 16:17:37
【问题描述】:

我遇到了让 fftw 工作的问题。我在 mac 上并在终端上使用 brew 安装了 fftw。

brew install fftw

如果我再次输入此安装命令,它会提醒我“警告:fftw 3.3.8 已安装并且是最新的”。但是我不能在 C 中调用 fftw.h。如果我有一行

,它会给我一个“fftw.h 文件未找到”的错误
#include <fftw.h>

我也试过直接安装

./configure
make
make install

跑了

make check

它告诉我“FFTW 转换通过了基本测试!”,但它仍然无法在 C 中工作。

任何建议将不胜感激!

【问题讨论】:

  • 请分享您的编译命令。通常,您必须将 FFTW 头文件的位置传递给编译器,并将库的位置传递给链接器。
  • 应该是&lt;fftw3.h&gt;,而不是&lt;fftw.h&gt;
  • @CrisLuengo 感谢您的回复。是的,我在输入安装命令之前确实进入了目录“fftw-3.3.8”。
  • 不在 install 命令中,而是在 compile 命令中。编译自己的 C 文件时,需要提供 FFTW 包含文件所在的目录。
  • 请说明如何您编译自己的 C 文件。这是给你一个错误信息的那个。如果您在收到错误消息之前没有显示您所做的事情,我们无法告诉您问题所在。

标签: signal-processing fft fftw


【解决方案1】:

您需要为编译器指定标头的位置。在两种情况下都为任一安装添加目录包含,标题可以在/usr/local/include中找到

gcc ... -I/usr/local/include ... 

此外,正如已经指出的那样,您需要#include &lt;fftw3.h&gt;。另请注意,您的 autoconf 构建仅安装了双精度功能。 brew 安装带来了所有 3 种精度,floatdoublelong double

当你想链接时,你可能会再次碰壁。将-L/usr/local/lib 添加到链接器命令中,以便能够像-lfftw3 -lfftw3f -lfftw3l 等那样链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-17
    • 2019-05-28
    • 2019-06-09
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 2013-03-26
    相关资源
    最近更新 更多