获取64位预编译的FFTW 3.3.5 Windows DLL
- 从fftw-3.3.5-dll64.zip下载。
- 解压文件。
创建导入库(.lib文件)
- FFTW官方文档在这里。
- 要了解如何将DLL链接到Visual Studio C++程序的背景,这篇MSDN文章链接可执行文件到DLL, 特别是关于隐式链接的部分是有帮助的。
- 同样有用的是README-WINDOWS,在解压缩位置可以找到。
打开Visual Studio开发人员命令提示符
- 导航至 开始菜单 -> 所有应用程序 -> Visual Studio 2015 -> 开发人员命令提示符
- 在我的机器上,位置是C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat
导航至解压缩位置,然后输入
lib /machine:x64 /def:libfftw3-3.def
(对于单精度或双精度,请使用libfftw3f-3.def或libfftw3l-3.def)
- 这将生成libfftw3-3.lib
- 请注意,这是针对x64的。
打开Visual Studio并创建C++控制台应用程序
- 创建C++控制台应用程序
- 接受所有默认设置
- 将解决方案平台设置为x64
告诉Visual Studio在哪里找到FFTW头文件。
(摘自this的SO答案。)
这有多种方法,这里介绍其中一种。
- 在解决方案资源管理器中,右键单击项目,选择属性。
- 添加其他包含目录。这将是解压缩的位置。
(或者,可以将.h文件复制到Visual Studio项目文件夹中。)
告诉Visual Studio在哪里找到FFTW导入库。
- 右键单击项目并选择属性。
- 添加附加库目录。这将是解压缩位置。
- 添加附加依赖项。输入先前创建的 .lib 文件 (libfftw3-3.lib)。
创建一个示例程序
(来自 FFTW 教程.)
#include "stdafx.h"
#include <fftw3.h>
int main()
{
fftw_complex *in, *out;
fftw_plan p;
int N = 32;
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);
fftw_destroy_plan(p);
fftw_free(in); fftw_free(out);
return 0;
}
编译
告诉Windows如何找到FFTW DLL
最简单的方法是将FFTW DLL(libfftw3-3.dll)从解压位置复制到Visual Studio输出文件夹中。
- 在Visual Studio中右键单击解决方案,然后选择在文件资源管理器中打开文件夹。
- 导航到.exe输出文件夹(例如 fftw_helloworld2\x64\Debug)
- 复制DLL libfftw3-3.dll
运行/调试
- 设置断点
- 按 F5 或