我无法链接fftw3库(最新的Mac OS X Yosemite 10.10.5)。我有一个developers的示例代码:
#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文件,但是,我在/Applications/fftw-3.3.7中有libfftw3.la。因此,我也尝试了
gcc FFT.c -I $ / Applications / 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)
请帮忙!不知道在哪里看。手册对我来说非常高,似乎没有广泛/完整地涵盖这些问题。
答案 0 :(得分:1)
问题听起来似乎没有正确安装fftw3
软件。您的意见建议您从源代码构建:
./configure
make
make install
前两个命令没问题。问题是make install
。与其他两个命令不同,make install
必须以root权限运行才能获得对所需目录的写访问权。你应该做的是:
./configure
make
sudo make install
在您输入帐户密码后,这会将make install
提升为root权限。
默认情况下,大多数配置脚本都将库和包含文件放在/usr/local
下。通常包括/usr/local/include
和/usr/local/lib
中的库。要编译,您应该能够使用-I
指定包含,并使用-L
指定包含这样的库:
gcc FFT.c -I/usr/local/include -L/usr/local/lib -lfftw3 -lm -o FFT