You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M2 Mac通过brew安装fftw3后编译提示‘library 'fftw3' not found’的问题求助

M2 Mac通过brew安装fftw3后编译提示‘library 'fftw3' not found’的问题求助

求助各位!我在M2芯片的MacBook上用Homebrew装了fftw3,IDE里写#include <fftw3.h>完全没问题,连自动补全fftw的常量、函数都正常,本来以为安装稳了,结果编译一段超简单的测试代码时,一直报错说找不到fftw3库,心态有点崩...

我的测试代码是这样的:

#include <stdio.h>
#include <fftw3.h>

int main(void) {
    fftw_complex* P = fftw_malloc(1);
    printf("测试FFTW内存分配\n");
    fftw_free(P);
    return 0;
}

有没有遇到过同样问题的朋友,能给我支个招吗?


可能的解决思路:

  • 核心原因是M系列Mac的Homebrew默认安装路径是/opt/homebrew,和老款Intel Mac的/usr/local不一样,编译器默认找不到这个路径下的库,所以得手动指定:
    • 用gcc编译的话,直接用这条命令:
      gcc -o test_fftw test_fftw.c -I/opt/homebrew/include -L/opt/homebrew/lib -lfftw3
      
    • 用clang编译的话,命令类似:
      clang -o test_fftw test_fftw.c -I/opt/homebrew/include -L/opt/homebrew/lib -lfftw3
      
    解释一下:-I指定头文件路径,-L指定库文件路径,-lfftw3就是告诉编译器要链接fftw3库。
  • 要是嫌每次编译都输这么长麻烦,可以把路径加到环境变量里:
    • 打开~/.zshrc(M2 Mac默认用zsh,要是你用bash就改~/.bash_profile),加上两行:
      export C_INCLUDE_PATH="/opt/homebrew/include:$C_INCLUDE_PATH"
      export LIBRARY_PATH="/opt/homebrew/lib:$LIBRARY_PATH"
      
    • 执行source ~/.zshrc让配置生效,之后编译就可以简化成:
      gcc -o test_fftw test_fftw.c -lfftw3
      
  • 另外,如果你装了fftw3的其他变体(比如单精度版本fftw3-single),记得链接对应的库,比如单精度用-lfftw3f,长双精度用-lfftw3l。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 13:33:05