首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C语言中的FFTW3链接

C语言中的FFTW3链接
EN

Stack Overflow用户
提问于 2018-03-14 21:48:48
回答 1查看 2.8K关注 0票数 0

我无法链接fftw3库(MacOSXYosemite10.10.5上的最新版本)。这里有一个来自开发人员的示例代码:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include </usr/local/include/fftw3.h>


int main()
    {
    int N;

    fftw_complex *in, *out;
    fftw_plan p;


    in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
    p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);


    fftw_execute(p); /* repeat as needed */


    fftw_destroy_plan(p);
    fftw_free(in); fftw_free(out);
}

我不认为这会有什么意义。在这一点上,我只是在编译。

1)我遵守了手册,并尝试:

gcc -lm -lfftw3 FFT.c -o FFT

gcc FFT.c -I$/usr/local/include/ -L$/usr/local/include/ -lfftw3 -lm -o FFT

还有很多其他的变体。

2)当我打开/usr/local/include/时,我并没有真正看到libfftw3 3-文件,但是,我在/Applications/fftw-3.3.7中有libfftw3.la。因此,我也试过

gcc FFT.c -I美元/申请/fftw-3.3.7。-L美元/申请/fftw-3.3.7。-lfftw3 -lm -o FFT

3)我尝试将libfftw3.la复制到/usr/local/include/并再次将选项(1)传递到终端.

所有相同的错误:

代码语言:javascript
复制
ld: warning: directory not found for option '-L$/Applications/fftw-3.3.7.'
ld: library not found for -lfftw3
clang: error: linker command failed with exit code 1 (use -v to see invocation)

求你了救命!我不知道该去哪找了。这本手册对我来说是很高层次的,似乎没有全面地涵盖这些问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-14 22:19:03

这个问题听起来好像你还没有正确安装fftw3软件。您的评论建议您从源代码构建:

代码语言:javascript
复制
./configure
make
make install

前两个命令是可以的。问题是make install。与其他两个命令不同,make install必须作为根特权运行,才能获得对所需目录的写访问权限。你应该做的是:

代码语言:javascript
复制
./configure
make
sudo make install

这将在您输入帐户密码后将make install提升到根权限。

默认情况下,大多数配置脚本在/usr/local下放置库并包含文件。通常包含在/usr/local/include中,库在/usr/local/lib中。要编译,您应该能够在-I中指定包含,用-L指定库,如下所示:

代码语言:javascript
复制
gcc FFT.c -I/usr/local/include -L/usr/local/lib -lfftw3 -lm -o FFT
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49288163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档