FFTW是一个快速计算离散傅里叶变换的标准C语言程序集,可计算一维或多维实和复数据以及任意规模的DFT。下面主要介绍的是 x86 环境下 FFTW库的编译过程,arm环境下的编译过程和FFTW类似,不同之处在于需要手动指定 编译环境 和 编译器。
FFTW有三个版本的数据类型:double、float和long double,在安装时对应不同的编译选项,最终得到的库也不尽相同。(以安装fftw 3.3版本为例)
类型 | 库名称 | 编译选项 |
double 类型 | fftw3-3 | 默认安装,无需另加编译选项 |
float 类型 | fftw3f-3 | --enable-float |
long double类型 | fftw3l-3 | --enable-long-double |
参考文章:
- Ubuntu16.04安装Qt+qwt+fftw_wsqyouth的博客-CSDN博客
- https://www.cnblogs.com/klausage/p/14288935.html
目录
一、下载 fftw 编译包
二、x86 环境
1、安装 fftw3(默认安装)
2、安装 fftw3f
3、安装 fftw3l
三、ARM 环境
一、下载 fftw 编译包
下载地址:download | fftw
复制链接地址,然后在Linux命令使用 wget 命令下载,或者也可以先在本地下载,然后再上传到Linux平台。
wget https://www.fftw.org/fftw-3.3.10.tar.gz
后续内容可以根据自身需要选择安装对应的环境。
二、x86 环境
解压刚才下载的包,然后进入到fftw的编译目录
tar -zxvf fftw-3.3.10.tar.gz
cd fftw-3.3.10/
FFTW有三个版本的数据类型:double、float和long double,在安装时对应不同的编译选项,最终得到的库也不尽相同。下面三个安装过程是各自独立的,不可一次使用所有选项。
类型 | 库名称 | 编译选项 |
double 类型 | fftw3-3 | 默认安装,无需另加编译选项 |
float 类型 | fftw3f-3 | --enable-float |
long double类型 | fftw3l-3 | --enable-long-double |
1、安装 fftw3(默认安装)
首先,设置编译参数检查依赖环境等,如设置安装路径、是否生成动态库等
./configure --enable-type-prefix \
--prefix=/usr/local/fftw \
--with-gcc \
--disable-fortran \
--enable-i386-hacks \
--enable-shared=yes
- --enable-type-prefix:目的是为了同时使用single precision(单精度)和double precision(双精度),如果不使用它,最后只有以rfftw开头的文件被安装(real fftw)
- --pref=xxx:设定安装目录(库文件、头文件的保存路径)
- --with-gcc:使用gcc编译器
- --disable-fortran:不包含Fortran调用的机制
- --enable-i386-hacks:为Pentium和x86以后的CPU优化gcc的编译速度
- --enable-shared=yes:生成动态库.so文件 否则生成的都是.a 文件
然后开始编译
make -j2
最后开始安装
sudo make install
2、安装 fftw3f
需要在之前的基础上额外加上 --enable-float 表示安装单精度版本。
./configure --enable-type-prefix \
--prefix=/usr/local/fftw \
--with-gcc \
--disable-fortran \
--enable-i386-hacks \
--enable-shared=yes \
--enable-float
然后开始编译
make -j2
最后开始安装
sudo make install
3、安装 fftw3l
需要在默认安装的基础上加上 --enable-long-double 选项表示安装长双精度版本。
./configure --enable-type-prefix \
--prefix=/usr/local/fftw \
--with-gcc \
--disable-fortran \
--enable-i386-hacks \
--enable-shared=yes \
--enable-long-double
然后开始编译
make -j2
最后开始安装
sudo make install
三、ARM 环境
ARM环境的编译和x86环境类似,只是需要手动指定编译环境和编译器。--enable-float 和 --enable-long-double 同样适用。
下面以默认安装为例
./configure --prefix=/usr/local/fftw_arm \
--host=arm-linux \
CC=/usr/local/arm-xilinx-linux-gnueabi-gcc
- --prefix=xxx:指定安装路径为 /usr/local/fftw_arm (和上面区分)
- --host=arm-linux:指定编译运行环境为arm环境
- CC=xx:指定编译器为交叉编译工具链
然后开始编译
make -j2
最后开始安装
sudo make install