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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/15098.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年五月份图形化一级打卡试题

活动时间 从2023年5月1日至5月21日,每天一道编程题。 本次打卡的规则如下: 小朋友每天利用10~15分钟做一道编程题,遇到问题就来群内讨论,我来给大家答疑。 小朋友做完题目后,截图到朋友圈打卡并把打卡的截图发到活动群…

OkHttp3源码解析 - 连接机制和缓存机制

系列文章目录 第一章 OkHttp3源码解析 - 请求流程 第二章 OkHttp3源码解析 - 拦截器 第三章 OkHttp3源码解析 - 连接机制和缓存机制 文章目录 系列文章目录前言一、连接机制1.1 创建连接1.2 连接池 二、缓存机制2.1 缓存策略2.2 缓存管理 彩蛋致谢 前言 本文基于okhttp3.12.1…

三大本土化战略支点,大陆集团扩大中国市场生态合作「朋友圈」

“在中国,大陆集团已经走过30余年的发展与耕耘历程,并在过去10年间投资了超过30亿欧元。中国市场也成为了我们重要的‘增长引擎’与‘定海神针’。未来,我们将继续深耕中国这个技术导向的市场。”4月19日上海车展上,大陆集团首席执…

ospf综合实验

目录标题 第一步:网段划分第二步:配置区域0路由器接口和环回第三步:配置区域0缺省第四步:配置MGRE环境第五步:配置区域0用户网段第六步:配置区域1路由器及环回第七步:配置区域2的路由器及环回第…

低代码开发重要工具:jvs-logic(逻辑引擎)基础原理与功能架构

逻辑引擎介绍 逻辑引擎是一种能够处理逻辑表达式的程序,它能够根据用户输入的表达式计算出表达式的值。在实际应用中,逻辑引擎通常被用于处理规则引擎、决策系统、业务规则配置等领域,具有广泛的应用前景。 原理与核心功能描述 基础原理 …

走进社区客户端测试 | 得物技术

0.引言 社区 C 端质量体系建设思考? 询问一下 ChatGPT 1、关于社区客户端 1.1 社区端上功能 得物首页 搜索、发布、关注流、推荐流、沉浸式单列流、活动 tab、其他二级频道 tab 动态详情页 图文、视频、专栏、点评 私域 个人/他人主页、通讯录好友、微博好友…

如何实现电脑通过手机上网?1分钟搞定!

案例:电脑没网时,如何通过手机上网? 【想用电脑看电影,但是附近没有Wi-Fi。朋友说可以说电脑可以通过手机上网,但我们都不知道具体如何操作,有没有小伙伴可以教教我们。】 在没有Wi-Fi或有线网络接入时&a…

服务(第十二篇)LVS-DR模式

数据包流向分析: (1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。 (2)Director Server 和 Re…

无良公司把我从上家挖过来,白嫖了六个月,临近试用期结束才说不合适,催我赶紧找下家!...

职场套路多,一不小心就会掉坑,一位网友讲述了自己的遭遇: 今天被领导催促离职了,当时就是这个领导把他从别的公司挖过来。这家公司催得太急,为了投奔这里,他和上家的HR都闹翻了,上家总监挽留他&…

时隔两个多月,一起来看ChatGPT现况如何?

ChatGPT这股风吹了两个多月,时至今日,各平台上与ChatGPT相关的文章,到现在依旧拥有着不小的流量。三月中旬上线了ChatGPT-4,与我们的文心一言前后脚发布,而后阿里的“通义千问”也展现了不俗的实力,那到现在…

图形界面GUI相关概念GLX/Wayland/X11/DRM/DRI

1. GUI图形界面是什么 GUI是graphical user interface的缩写,图形用户接口,实现了基本的WIMP(windows,icons,menus,pointer)。一个GUI的基本组成:display server实现windowing syst…

03_线程间通信

面试题:两个线程打印 两个线程,一个线程打印1-52,另一个打印字母A-Z打印顺序为12A34B...5152Z,要求用线程间通信 public class Demo01 {public static void main(String[] args) {ShareData05 shareData05 new ShareData05();new…

分布式事务处理方案及分布式锁相关

​ 本文偏理论 一、事务处理 1、事务处理的四个特性ACID Atomicity 原子性: 对于数据库的修改,全部执行or全部不执行 Consistency 一致性: Isolation 隔离性 : 亦称为串行化,防止事务间操作混淆,需要串行化或者序列化请求,使…

隐私权限是什么

导读: 隐私权在现代社会对于人们而言是重要的人格权,而随着互联网技术的发展,实践中侵犯隐私权的行为很常见。那么隐私权限是什么?侵犯隐私权的行为有哪些?侵犯他人隐私权要负什么法律责任?接下来将由找法…

使用docker搭建RocketMQ(非集群搭建官方镜像)

之前在使用 RocketMQ 官方的包在搭建的时候,发现好多问题,什么修改内存大小,然后启动 broker 报错,类似 service not available now, maybe disk full 等等… 最后决定还是重新用 docker 搭建下,感觉这样子玩坏了&…

微信仿真平台的设计和实现(设计+源码)_kaic

摘要 现如今,科技的发展带动着环保方式的更新,Internet是一个不断的开展和不停的扩充数据潮流,有了它,我们可以快速、容易地在世界的任何角落进行沟通,获取更多的信息与资料。Internet可以提供大量信息资源和文案数据库…

全国各省份影像下载地址(11级别)

安徽省https://pan.baidu.com/s/1fMuWhVZFvSH1UlCGU1bPpA?pwdeasy澳门特别行政区https://pan.baidu.com/s/1aU2D4o2bfeHTJTb6AkUtVA?pwdeasy北京市https://pan.baidu.com/s/1eaNzAWm1pUx_rjhD_wHHhA?pwdeasy福建省百度网盘 请输入提取码甘肃省https://pan.baidu.com/s/1mAqf…

时序预测相关技术分享

时序预测相关技术分享 时序预测是指对时间序列数据进行预测,以预测未来的趋势或行为。在实际生产和应用中,时序预测广泛应用于金融、电力、交通等领域。时序预测可以帮助人们更好地理解和掌握未来的趋势和规律,从而做出更明智的决策。 时序…

南大通用数据库-Gbase-8a-学习-34-gcdump(导出数据库对象定义)

目录 一、测试环境 二、介绍 三、命令帮助 四、参数介绍 1、--print-defaults (1)含义 (2)例子 2、--connect_timeout (1)含义 (2)例子 3、-A, --all-databases &#xf…

10款比较好用的网页设计工具

网页设计软件的轻量化和在线协作已成为当前网页制作软件的发展趋势。网页设计并不容易,易于使用的网页UI设计软件更难找到。随着网络的快速发展,网站迅速崛起,网页设计也很受欢迎。网页设计软件即时设计是一种在线协作设计工具,深…