在Visual Studio中使用FFTW库
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库的更多相关文章
- 在Visual Studio 中使用git——浏览版本库(七)
在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...
- 如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...
- 利用Visual GDB在Visual Studio中进行Android开发
转载请注明http://www.cnblogs.com/adong7639/p/4119467.html 无意中发现了Visual GDB这个工具,可以再Visual Studio中进行Android ...
- [转]如何在 Visual Studio 中使用 Git 同步代码到 CodePlex
本文转自:http://www.cnblogs.com/stg609/p/3673782.html 开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framew ...
- (15)Visual Studio中使用PCL项目加入WCF WebService参考
原文 Visual Studio中使用PCL项目加入WCF WebService参考 Visual Studio中使用PCL项目加入WCF WebService参考 作者:Steven Chang 2 ...
- Visual Studio 中指定自定义生成事件
自定义生成事件打开方式 通过指定自定义生成事件,可以在生成开始之前或在它完成之后自动运行命令.在Visual Studio中通过右键项目->属性 进入项目属性菜单. 自定义生成事件的语法 生成事 ...
- Visual Studio 编译使用FLTK库
FLTK介绍 FLTK (Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/ ...
- [翻译]第二天 - Visual Studio 中的 .NET Core 模版一览
原文: http://michaelcrump.net/part2-aspnetcore/ 免责声明:我不是 .NET Core 开发团队的一员,并且使用的是公开.可用的工具. 简介 该系列文章的完整 ...
- Visual Studio中头文件stdafx.h的作用
在较新版的Visual Studio中,新生成的C++项目文件的的头文件夹下会默认有头文件stdafx.h,而源文件夹下则默认有源文件stdafx.cpp,手动将这些文件删除后,编译时系统还会报错.下 ...
随机推荐
- java axis web service
编写 java调用web service的客户端比较简单,其中webservice为上一篇gsoap创建的server. package clientTest; import java.rmi.Rem ...
- HDU 5446 Unknown Treasure(Lucas定理+CRT)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5446 [题目大意] 给出一个合数M的每一个质因子,同时给出n,m,求C(n,m)%M. [题解] ...
- 解决phpmyadmin-1800秒超时链接失效问题
在phpmyadmin的配置文件里 \usr\share\phpMyAdmin\libraries\config.default.php 修改 $cfg[‘LoginCookieValidity’] ...
- 一个关于Integer的秘密
先让大家看一段简单的代码: public static voidmain(String[] args) { Integera = 1; Integerb = 1; Integerc = 222; In ...
- Sublime Text3快捷方式总结
Ctrl+P快速查找 Ctrl+D多行游标//同时选中多个地方进行编辑 Ctrl+F查找替换 Ctrl+H查找替换 Ctrl+G快速跳到某一行 Ctrl+shift+P命令模式 在命令模式下设置语法: ...
- iOS 设置状态栏的颜色
1.在plist文件中设置如下属性: 2.在delegate中设置 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarSt ...
- des 加密 iOS
转载请注明原文出处 生成同名的Des.h文件和Des.m文件后,拷贝下方的代码可直接使用.注意在Des.m文件中将key值修改为项目所需的key.---> #define DesKey 过程很 ...
- 控制所生成的servlet的结构: JSP page指令
在JSP中,主要有3种类型的指令:page, include和taglib.page指令允许我们通过类的导入.servlet超类的定制.内容类型的设置.以及诸如此类的事物来控制servlet的结构.p ...
- Problem G: Keywords Search
Problem G: Keywords SearchTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 10 Solved: 6[Submit][Status] ...
- 2768: [JLOI2010]冠军调查( 最小割 )
最小割... 怎么乱搞都可以 -------------------------------------------------------------------------------- #inc ...