FFTW不用做过多介绍,一般都是在linux下使用,包括放出windows版的作者也自己声明:we don't use Windows ourselves

但是由于要和MIC混合编程,想先在本地使用,其中碰到了一些问题,但也明白了不少Visual Studio的基本配置。

我的系统是windows8和visual studio 2012。

第一步:下载文件

去官网下载FFTW64位库:http://www.fftw.org/install/windows.html,直接解压即可。

第二步:使用VS2012带的lib工具生成lib文件

在fftw-3.3.4-dll64文件夹下输入以下指令:

对于VS系列编译器命令如下:

lib /machine:x64 /def:libfftw3-.def
lib /machine:x64 /def:libfftw3f-.def
lib /machine:x64 /def:libfftw3l-.def

如果不是VS编译器可以不指定machine,直接使用:

 lib /def:libfftw3-.def
lib /def:libfftw3f-.def
lib /def:libfftw3l-.def

Tip:lib指的是lib.exe,如果提示找不到这个指令,说明环境变量没有配,在PATH下添加VS安装路径即可

比如我的是D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin;D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64

如果前一个仍不能成功生成,可以只用后面一个路径。

第三步:在VS2012中的项目属性中进行配置

主要有4个步骤:

1.添加头文件路径:

在属性-》c/c++=》AdditionalIncludeDirectories中添加fftw-3.3.4-dll64这个文件夹,这样程序可以使用fftw3.h

2.添加库路径:

在属性=》Linker=》AdditionalLibraryDirectories中添加fftw-3.3.4-dll64这个文件夹,这样程序可以使用其中的dll文件。

3.添加库文件名:

在属性=》Linker下的input选项中的AdditionalDependencies中添加

libfftw3-3.lib
libfftw3f-3.lib
libfftw3l-3.lib

这三个lib库,这样程序可以使用其中的lib文件。

4.将动态库复制到项目的代码目录下(包含vcxproj的目录)

libfftw3-3.dll

libfftw3f-3.dll

libfftw3l-3.dll

Tip:我自己在复制64位的dll文件之后一直出现:应用程序无法正常启动0xc000007b的问题,后来我其他配置方法不变,从32位的文件夹里拷贝的这三个dll库,程序就可以正常运行。

第四步:测试代码

#include "fftw3.h"
#include <stdio.h>
#define N 8
int main()
{
int i;
fftw_complex *din,*out;
fftw_plan p;
din = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);
if((din==NULL)||(out==NULL))
{
printf("Error:insufficient available memory\n");
}
else
{
for(i=; i<N; i++)/*测试数据*/
{
din[i][] = i+;
din[i][] = ;
}
} p = fftw_plan_dft_1d(N, din, out, FFTW_FORWARD,FFTW_ESTIMATE);
fftw_execute(p);
fftw_destroy_plan(p);
fftw_cleanup();
for(i=;i<N;i++)
{
printf("%f,%fi\n",din[i][],din[i][]);
}
printf("\n");
for(i=;i<N;i++)
{
printf("%f,%fi\n",out[i][],out[i][]);
} if(din!=NULL) fftw_free(din);
if(out!=NULL) fftw_free(out);
getchar(); return ;
}

在Visual Studio中使用FFTW库的更多相关文章

  1. 在Visual Studio 中使用git——浏览版本库(七)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...

  2. 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...

  3. 利用Visual GDB在Visual Studio中进行Android开发

    转载请注明http://www.cnblogs.com/adong7639/p/4119467.html 无意中发现了Visual GDB这个工具,可以再Visual Studio中进行Android ...

  4. [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex

    本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...

  5. (15)Visual Studio中使用PCL项目加入WCF WebService参考

    原文 Visual Studio中使用PCL项目加入WCF WebService参考 Visual Studio中使用PCL项目加入WCF WebService参考 作者:Steven Chang 2 ...

  6. Visual Studio 中指定自定义生成事件

    自定义生成事件打开方式 通过指定自定义生成事件,可以在生成开始之前或在它完成之后自动运行命令.在Visual Studio中通过右键项目->属性 进入项目属性菜单. 自定义生成事件的语法 生成事 ...

  7. Visual Studio 编译使用FLTK库

    FLTK介绍 FLTK (Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/ ...

  8. [翻译]第二天 - Visual Studio 中的 .NET Core 模版一览

    原文: http://michaelcrump.net/part2-aspnetcore/ 免责声明:我不是 .NET Core 开发团队的一员,并且使用的是公开.可用的工具. 简介 该系列文章的完整 ...

  9. Visual Studio中头文件stdafx.h的作用

    在较新版的Visual Studio中,新生成的C++项目文件的的头文件夹下会默认有头文件stdafx.h,而源文件夹下则默认有源文件stdafx.cpp,手动将这些文件删除后,编译时系统还会报错.下 ...

随机推荐

  1. ObjectiveC 文件操作一

    1,引用和使用文件 NSFileManager 是一个单例对象,在mac应用中可以获取任何地址,在IOS中获取的是相对应的应用程序的地址.可以使用 defaultManager 来得到当前应用程序地址 ...

  2. C# async await 例子

    private static async void Worker() { Console.Write("main thread id is :{0}",Thread.Current ...

  3. pyqt开发教程-搭建环境和开发示例

    搭建环境和开发示例 * 安装 安装包 要对应python的版本 32位安装包(我PC上) http://jaist.dl.sourceforge.net/project/pyqt/PyQt4/PyQt ...

  4. mysql 性别存储

    大家在设计数据库时,碰到 性别.状态等 这些 值比较固定的列时,数据类型 是如何定义? 通常都是采用 : 1 create table `XXX` 2 ( 3 ........ 4 sex int(1 ...

  5. Finding the Longest Palindromic Substring in Linear Time

    Finding the Longest Palindromic Substring in Linear Time Finding the Longest Palindromic Substring i ...

  6. github中的ssh配置

    1.配置git信息 设置git的user name和email: $ git config --global user.name "tigerjibo"$ git config - ...

  7. 委托与Lambda表达式

    ~,先不急说委托和Lambda表达式,先看两个例子再说: 1. 通过委托,为一个数字加10,如下代码: class Program { private delegate int JiSuan(int ...

  8. java 汉字转拼音

    先决条件: pinyin4j.jar(Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换.拼音输出格式可以定制.) 下载地址:http://pan.baidu.com/share/l ...

  9. C++中头文件(.h)和源文件(.cpp)都应该写些什么

    头文件(.h): 写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等,但一般来说不写出具体的实现. 在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下): ...

  10. linux下安卓编译apk环境搭建

    ubuntu下linux安卓编译环境搭建. 配置好编译环境 (前提是已经安装了jdk,可以用java -verison 命令查看) 一.设置环境变量 用vi  ~/.bashrc  打开编译环境 JA ...