Windows下基于CMake的FFTW库配置和使用
来源:互联网 发布:男式真皮鞋上淘宝 编辑:程序博客网 时间:2024/05/17 07:06
1、下载FFTW动态库文件。链接为http://www.fftw.org/install/windows.html#fftw2,该库是一个跨平台的动态库,由于我们是在Windows下使用,因此只需要下载windows版本即可。该版本又可以分为32bit和64bit版本,使用过程基本类似。这里以64bit版本的使用为例进行说明。下载fftw-3.3.2-dll64.rar,解压后主要文件有:
fftw3.h
libfftw3-3.def
libfftw3f-3.def
libfftw3l-3.def
libfftw3-3.dll
libfftw3f-3.dll
libfftw3l-3.dll
这是我们需要的文件,其他可以不用管。
2、生成引导库文件(.lib)。在调用动态库编译工程时,需要引导库lib文件,可以通过lib.exe(VS环境中已经附带该工具无需下载)将.def文件生成相应的lib文件。打开程序->Microsoft Visual Studio 2008->Visual StudioTools->Visual Studio x64 Win64 Command Prompt命令行工具,分别键入命令:
lib /machine:x64 /def:libfftw3-3.def
lib /machine:x64 /def:libfftw3l-3.deflib /machine:x64 /def:libfftw3f-3.def
执行完毕后,即可生成3个lib文件:libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib。由于是编译64位版本,在命令行中添加/machine:x64,在开始时由于漏掉了该参数,导致编译一直失败,这里应特别注意。如果是32bit版本的话,则不需要该参数。
3、利用CMake配置工程。首先建立一个源码目录source,这里存放代码文件。在source目录下建立一个子目录FFT,用于存放FFTW的库文件。将第二步骤完成的FFTW库文件(fftw3.h libfftw3-3.lib libfftw3f-3.lib libfftw3l-3.lib)拷贝至该目录下。在source目录下,建一个工程文件FFTWTest.cpp(可以暂时先不写代码)和CMakeLists.txt文件。 CMake利用CMakeLists.txt文件对工程进行配置,这里给出CMakeLists.txt主要内容。Project ( FFTWTest )cmake_minimum_required ( VERSION 2.6 ) include_directories(${PROJECT_SOURCE_DIR}/FFT/) link_directories(${PROJECT_SOURCE_DIR}/FFT/) add_executable ( FFTWTest FFTWTest.cpp )完成后保存文件,在source目录同级目录下,建立bin-X64目录用于存储工程文件。打开CMake,选择source为源文件目录,bin-X64为编译目标地址,配置完成后生成相应的工程。target_link_libraries( FFTWTest libfftw3-3 libfftw3f-3 libfftw3l-3)
4、编写工程文件代码,调用FFTW库完成快速傅里叶变换。在bin-X64目录下,打开生成的工程文件FFTWTest.sln,然后打开FFTWTest.cpp文件,添加代码如下:
完成后,编译无错后,即可运行。#include "fftw3.h"int main(){ fftw_complex *in, *out; fftw_plan p; int N= 8; in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); for( int i=0; i < N; i++) { in[i][0] = 1.0; in[i][1] = 0.0; printf("%6.2f ",in[i][0]); } printf("\n"); p=fftw_plan_dft_1d(N,in,out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); /* repeat as needed*/ for(int j = 0;j < N;j++) { printf("%6.2f ",out[j][0]); } printf("\n"); fftw_destroy_plan(p); fftw_free(in); fftw_free(out); return 0;}
- Windows下基于CMake的FFTW库配置和使用
- fftw在windows下的配置问题
- linux 和 Windows下FFTW库的安装
- windows Qt下使用fftw库
- Windows下FFTW库的安装
- Windows下FFTW库的安装
- Windows下FFTW库的安装
- Windows下的快速傅里叶变换库fftw
- Windows下FFTW库的安装
- fftw windows 下安装使用
- Windows安装和使用fftw
- Windows下FFTW的安装
- fftw函数库在Windows下的安装与配置
- 在ubuntu下使用cmake进行opencv的配置和Windows下进行使用cmake编译源代码比较,opencv3进行g++例子程序编译、动态库的制作
- 基于windows下使用CMake和VS2013编译OpenCV的环境搭建
- fftw库的使用
- windows下cmake的使用
- Windows下CMake的使用
- 串的模式匹配(基于修正的KMP的匹配算法)
- IOS第二十八天——借助开源力量,试用下别人写的一个KxMenu
- spring回顾整理
- hibernate温故知新
- MINA 协议解码过滤器
- Windows下基于CMake的FFTW库配置和使用
- 代数笔记
- [C] 让VC支持C99的整数类型V1.01。避免包含目录问题,更名auto_stdint.h、auto_inttypes.h(在VC6至VC2012、GCC、BCB等编译器下测试通过)
- Linux configure关于交叉编译的参数设置
- TP中的数据缓存
- java 请求 http
- 主流内存数据库简要比较
- 系统编译:如何给Make命令来传递参数
- Java中的跳出某层循环(包括跳出本层循环)