【发布时间】:2012-09-17 23:19:03
【问题描述】:
我正在尝试在 Visual Studio 2010 中创建一个使用 FFTW 的简单项目。链接库时遇到问题。
我已经按照their Windows page 的指示创建了 64 位 .lib 文件
我解压了他们下载的 64 位版本,并在该目录中运行了指定的工具。我已将其解压缩到一个名为“fftw”的文件夹中,作为我项目的兄弟。
在 Visual Studio 中,我创建了一个具有所有默认值的 C++ 控制台应用程序。默认构建类型是调试 Win32。我已将此行添加到配置属性→链接器:
C:\Users\XXXXX\Documents\Visual Studio 2010\Projects\fftw\libfftw3-3.lib
我还将 libfftw3-3.lib 添加到 Configuration Properties→Linker→Input 并在那里尝试了完整路径。
我包括 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 ==========
谁能以我的方式告诉我错误?
【问题讨论】:
-
使用 64 位版本库的计划发生了什么?您的测试项目是 32 位的。
-
我刚刚尝试将 FFTW 的 32 位二进制文件用于我的 32 位项目。我犯了同样的错误。我从它们的 32 位包中提取了 .h、.dll 和 .def。然后这是我在提示下运行以创建 .lib 和 .exp C...Projects\fftw>lib /def:libfftw3-3.def /machine:x86 Microsoft (R) Library Manager Version 10.00.40219.01 版权所有(C ) 微软公司。版权所有。创建库 libfftw3-3.lib 和对象 libfftw3-3.exp