我无法链接fftw3库(MacOSXYosemite10.10.5上的最新版本)。这里有一个来自开发人员的示例代码:
#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)传递到终端.
所有相同的错误:
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)求你了救命!我不知道该去哪找了。这本手册对我来说是很高层次的,似乎没有全面地涵盖这些问题。
发布于 2018-03-14 22:19:03
这个问题听起来好像你还没有正确安装fftw3软件。您的评论建议您从源代码构建:
./configure
make
make install前两个命令是可以的。问题是make install。与其他两个命令不同,make install必须作为根特权运行,才能获得对所需目录的写访问权限。你应该做的是:
./configure
make
sudo make install这将在您输入帐户密码后将make install提升到根权限。
默认情况下,大多数配置脚本在/usr/local下放置库并包含文件。通常包含在/usr/local/include中,库在/usr/local/lib中。要编译,您应该能够在-I中指定包含,用-L指定库,如下所示:
gcc FFT.c -I/usr/local/include -L/usr/local/lib -lfftw3 -lm -o FFThttps://stackoverflow.com/questions/49288163
复制相似问题