微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何让FFTW ++在Windows上工作? 傻瓜

我正在使用Windows 10和Visual Studio 2015.在C ++中,我需要获取应用滤镜的图像的傅立叶变换。 看来FFTW ++是这个理想的解决scheme,但是我不能把它编译出来,而且它让我很生气。 我对编程比较陌生,所以我不知道这是多么的尴尬。

我使用Visual Studio中的NuGet函数获取FFTW库。 由于在NuGet上找不到它,我从下面的链接下载了FFTW +的内容: https ://sourceforge.net/projects/fftwpp/我将下载的内容复制到项目文件夹中,并将头文件包含在解决scheme资源 但是它没有编译,抛出许多奇怪的错误(例如:在seconds.h中,它表示某些函数获取时区已经过时,而在fftww ++。h中则表示std :: max是非法的) 。

所以在看到这不起作用后,我回到了FFTW网站,并尝试使用Windows安装指南。 http://www.fftw.org/install/windows/我下载了64位版本,我完全不知道如何做库导入的事情,甚至是什么。 i.imgur.com/Qs7mFQT.png这是我得到的,我完全失去了。

我怎样才能编译? 如果可以的话,请尽可能详细的给我解释一下如何使用这个东西,我可能是愚蠢的,但我实际上不知道发生了什么事情,在Google上找不到任何教程。

Visual Studio 2013中的Windows XP和Windows Server 2003支持

如何阻止Visual Studiodebugging器在遇到断点时聚焦窗口?

我可以在Windows 8.1设备上开发Windows 10应用程序吗?

Visual Studio 2012适用于C(而非C ++)专业编程吗?

作为独立开发者许可微软软件的最佳方式

驱动程序在解决scheme中部署驱动程序时发生testing错误:系统找不到指定的文件

WinDBG适用于从Visual Studio 2015中保存的转储,但不是任务pipe理器。 显示exception代码“找不到”

在包含相同头文件的这两种方法间的编译器中发生了什么不同?

使用(和导出)boost :: shared_ptr <T>时出错C2562

SGemm结果不一致

获得64bit预编译的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头文件

(从这个 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); /* repeat as needed */ 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或

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐