【发布时间】:2018-08-23 14:20:39
【问题描述】:
我无法链接 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)
请帮忙!不知道再去哪里看。该手册对我来说水平很高,似乎并没有广泛/完整地涵盖这些问题。
【问题讨论】:
-
-L$/Applications/fftw-3.3.7。$在那里做什么? -
$是这里的问题。做:gcc FFT.c -L/Applications/fftw-3.3.7. -lfftw3 -lm -o FFT -
(好吧,我们可以,但我们禁止自己做这样的事情:))
-
不,现在就格式化您的硬盘! (别!)。你能检查一下我指出的目录吗?你有
/Applications吗?或~/Applications现有? -
您通常不会从 Applications 文件夹构建。您可以从帐户管理器中的文件夹中执行此操作。大多数默认的 ./configure 脚本将生成 Makefiles,将安装放置在
/usr/local下。当您最终执行sudo make install
标签: c macos linker linker-errors fftw