3

我正在尝试在 Visual Studio 2010 中创建一个使用 FFTW 的简单项目。我无法链接库。

我已经按照他们的 Windows 页面上的指示创建了 64 位 .lib 文件

我解压缩了他们下载的 64 位版本,并在该目录中运行了指定的工具。我已经将它解压缩到一个名为“fftw”的文件夹中,作为我项目的兄弟。

在 Visual Studio 中,我创建了一个具有所有默认值的 C++ 控制台应用程序。默认构建类型是调试 Win32。我已将此行添加到Configuration Properties→LinkerC:\Users\XXXXX\Documents\Visual Studio 2010\Projects\fftw\libfftw3-3.lib

我还添加了 libfftw3-3.lib 到配置属性→链接器→输入,并在那里尝试了一个完整路径。

我包括 StdLib 复合体和 FFTW:

#include <complex>
#include "..\..\fftw\fftw3.h"

我的主要功能只有他们的示例代码:

int _tmain(int argc, _TCHAR* argv[])
{
  const int N = 1024;
  fftw_complex in[N], out[N];
  fftw_plan p;
  p = fftw_create_plan(N, FFTW_FORWARD, FFTW_ESTIMATE);
  fftw_one(p, in, out);
  fftw_destroy_plan(p);  
  return 0;
}

当我尝试构建时,我得到了这个:

1>------ Build started: Project: FFTTest, Configuration: Debug Win32 ------
1>  FFTTest.cpp
1>c:\users\XXXXX\documents\visual studio 2010\projects\ffttest\ffttest\ffttest.cpp(34): error C3861: 'fftw_create_plan': identifier not found
1>c:\users\XXXXX\documents\visual studio 2010\projects\ffttest\ffttest\ffttest.cpp(36): error C3861: 'fftw_one': identifier not found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

有人可以向我展示我的错误吗?

4

3 回答 3

4

找到它:fftw_create_plan()并且fftw_one()是已从 FFTW3 中删除的功能。

您可能已经从FFTW2 教程中获得了代码,请参阅FFTW3 教程

于 2012-09-18T13:52:46.613 回答
0

不要在路径中使用反斜杠:

#include "../../fftw/fftw3.h"

C/C++ 中的反斜杠被解释为转义字符,要生成反斜杠,您需要将其加倍,但通常始终用于/制作路径分隔符。

于 2012-09-17T23:36:53.660 回答
0

我试图将 FFTW v2 API 与 FFTW v3 库一起使用。他们的v3 教程页面上有一个工作示例。

我上面引用库的步骤很好。您可能还希望将 FFTW DLL 放入可执行文件所在的目录中。

于 2012-09-18T14:38:29.417 回答