当前位置:   article > 正文

【交叉编译】编译生成 x86、arm 环境下的FFTW库_fftw3f

fftw3f

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

参考文章:


目录

一、下载 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的编译目录

  1. tar -zxvf fftw-3.3.10.tar.gz
  2. 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(默认安装)

首先,设置编译参数检查依赖环境等,如设置安装路径、是否生成动态库等

  1. ./configure --enable-type-prefix \
  2. --prefix=/usr/local/fftw \
  3. --with-gcc \
  4. --disable-fortran \
  5. --enable-i386-hacks \
  6. --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 表示安装单精度版本。

  1. ./configure --enable-type-prefix \
  2. --prefix=/usr/local/fftw \
  3. --with-gcc \
  4. --disable-fortran \
  5. --enable-i386-hacks \
  6. --enable-shared=yes \
  7. --enable-float

 然后开始编译

make -j2

最后开始安装

sudo make install

3、安装 fftw3l

需要在默认安装的基础上加上 --enable-long-double 选项表示安装长双精度版本。

  1. ./configure --enable-type-prefix \
  2. --prefix=/usr/local/fftw \
  3. --with-gcc \
  4. --disable-fortran \
  5. --enable-i386-hacks \
  6. --enable-shared=yes \
  7. --enable-long-double

 然后开始编译

make -j2

最后开始安装

sudo make install

三、ARM 环境

ARM环境的编译和x86环境类似,只是需要手动指定编译环境和编译器。--enable-float 和 --enable-long-double 同样适用。

下面以默认安装为例

  1. ./configure --prefix=/usr/local/fftw_arm \
  2. --host=arm-linux \
  3. 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
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
  

闽ICP备14008679号