Ubuntu编译fftw3

文章目录

      • 1. 安装依赖项
      • 2. 安装 `gcc9` 和 `g++9`
      • 3. 下载 FFTW 3.3.10 源码
      • 4. 配置编译选项
      • 5. 编译和安装
      • 6. 验证安装
      • 7. 相关配置(可选)
      • 8. 编译使用 FFTW 的程序

在 Ubuntu 20 上使用 gcc9g++9 编译 FFTW 3.3.10 需要以下几个步骤,包括安装依赖、下载源码、配置编译环境,并最终进行编译与安装。

1. 安装依赖项

首先,确保安装了 gcc9g++9 以及编译 FFTW 所需的工具和库。

sudo apt update
sudo apt install build-essential libtool autoconf pkg-config

2. 安装 gcc9g++9

Ubuntu 20 默认安装的 GCC 版本可能较低,因此需要手动安装 gcc9g++9

sudo apt install gcc-9 g++-9

你可以通过以下命令切换默认编译器为 gcc9g++9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100

检查版本是否正确:

gcc --version
g++ --version

3. 下载 FFTW 3.3.10 源码

从 FFTW 官方网站或使用 wget 命令下载 FFTW 3.3.10 的源码:

wget http://www.fftw.org/fftw-3.3.10.tar.gz

解压缩下载的源码文件:

tar -xvzf fftw-3.3.10.tar.gz
cd fftw-3.3.10

4. 配置编译选项

为了确保使用 gcc9g++9 进行编译,配置编译环境:

CC=gcc-9 CXX=g++-9 ./configure --enable-shared --enable-threads --with-pic

选项说明:

  • --enable-shared:启用共享库(.so 文件)的构建。
  • --enable-threads:启用多线程支持。
  • --with-pic:在静态库中使用位置无关代码(Position Independent Code),以便与共享库一起工作。

5. 编译和安装

一旦配置完成,使用以下命令进行编译:

make -j$(nproc)

-j$(nproc) 参数会根据系统 CPU 核心数量并行编译,提高编译速度。

然后使用以下命令安装 FFTW:

sudo make install

6. 验证安装

编译和安装完成后,使用以下命令验证安装是否成功:

ldconfig -p | grep fftw

如果输出中有 FFTW 的共享库信息,则说明安装成功。你还可以通过运行 FFTW 提供的测试程序来验证安装:

make check

7. 相关配置(可选)

如果你希望 pkg-config 能找到 FFTW 库,可以将库路径添加到系统中:

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"

这样,编译其他依赖 FFTW 的项目时,pkg-config 可以正确找到 FFTW 库。

8. 编译使用 FFTW 的程序

编译使用 FFTW 的程序时,确保链接到 FFTW 的库,通常可以通过以下方式进行编译:

gcc your_program.c -o your_program -lfftw3 -lm

-lfftw3 链接 FFTW 库,-lm 链接数学库。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Python|接口自动化测试】使用requests库发送HTTP请求

1.requests模块介绍 Python的requests模块是一个非常流行的第三方库,用于发送HTTP请求。它简化了与Web服务进行交互的过程,使得开发人员可以更方便地处理HTTP请求和响应。 本篇文章需要对HTTP和Python有一定的了解,只会解释关键性的操作 安…

javascript:监听浏览器页签切换

监听页面的可见性变化,在很多场景下非常实用,比如跟踪用户行为、节省资源、优化性能等。 1 代码示例 document.addEventListener("visibilitychange", () > {if (document.visibilityState "visible") {alert("当前页面已…

VUE 开发——Node.js学习(一)

一、认识Node.js Node.js是一个跨平台JavaScript运行环境,使开发者可以搭建服务器端的JavaScript应用程序 使用Node.js编写服务器端程序——编写数据接口、前端工程化; Node.js环境没有BOM和DOM; Node.js安装:下载node-v16.19…

聚观早报 | Redmi K80 Pro电池细节;vivo X200 Pro mini真机照

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 9月30日消息 Redmi K80 Pro电池细节 vivo X200 Pro mini真机照 广汽集团正制订深化改革方案 蔚来中国获新一轮增…

敢不敢动手?AI绘画+表情包制作,7步搞定超萌表情!

在这个信息爆炸的时代,表情已经成为我们日常沟通中不可或缺的一部分。然而,过去制作个性化表情包不仅耗时费力,还需要掌握复杂的设计软件,如AE、AI、(Adobe Illustrator )、PS。然而,随着AI绘画技术的兴起&…

一天学习开发一个APP!PDF转Word文档,Power Platform也能搞定

之前,给大家分享了微软Power Platform开发课程——手把手教你搭建二维码识别器,大家都很感兴趣。听说,很多小伙伴对于PDF转Word文档有困扰,这期我们继续为大家分享Power Platform的开发能力与技巧,怎么通过Power Platf…

hex 文件和 bin 文件剖析

目录 一、概述二、hex 文件三、bin 文件 在单片机开发中,hex 文件和 bin 文件是非常常见的两种烧写文件格式。比如在 Keil 中,编译好程序后,点击 Download 就可以把 hex 文件烧录到板子上。 而有时候在我们实现 IAP 时,有需要生成…

jmeter中token测试

案例: 网站:http://shop.duoceshi.com 讲解:用三个接口来讲解 第一个接口code:GET http://manage.duoceshi.com/auth/code 第二个登录接口:http://manage.duoceshi.com/auth/login 第三个接口:http://…

探索SpringBoot:学科竞赛管理项目开发

2 相关技术简介 2.1Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任…

fish-speech语音大模型本地部署

文章目录 fish-speech模型下载编译部署 小结 fish-speech模型 先说下fish-speech模型吧,可以先看下官网。如下: 这就是一个模型,可以根据一个样例声音,构建出自己需要的声音。其实,这个还是有很多用途的;…

产品管理- 互联网产品(5):运营知识与技能

了解运营 1、运营的基础是产品认清受众,切实解决问题、用户需求 2、运营活动贯穿产品的整个生命周期 3、找准用户,建立MVP 4、明确产品的应用场景。用户在何场景下基于何种需求使用产品?务必短流程 5、AARRR模型 6、运营管理流程类似产品管理…

API版本管理秒杀ApiFox的ApiFirst对比功能雏形演示

文章目录 前言第一版对比功能说明视频演示 前言 目前市面上主流的API管理工具在版本管理上,个人觉得做的比较粗糙,无法很直观的体现出版本之间差异,还停留在api元数据的文本比较上。用户更希望在浏览API文档阅读模式时能像word标注一样&…

Sqlserver 连接 chche 数据库详细步骤

zihao 第一步,安装ODBC驱动 在windows资源管理器里粘贴以下地址,会进入到驱动文件夹 ftp://ftp.intersystems.com/pub/cache/odbc/2018/ 第二步,添加ODBC 安装后,可能需要重启。然后打开控制面板,搜素ODBC&#xf…

The legacy JS API is deprecated and will be removed in Dart Sass 2.0

The legacy JS API is deprecated and will be removed in Dart Sass 2.0 更新了sass版本后,启动项目控制台一直在报错,影响开发效率,强迫症表示忍受不了。 字面意思是:Sass在2.0版本将会移除legacy JS API,所以现在使…

【ESP 保姆级教程】小课设篇 —— 案例:20231219_基于 ESP32 TFT显示课程表

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2024-09-30 ❤️❤️ 本篇更新记录 2023-09-30 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…

Linux命令一文速通速成

目录 嵌入式Linux的组成 Linux的介绍 Linux和发行版本 Linux应用 Linux特点 Linux发行版 GNU Linux目录结构 为什么要使用Linux命令? 登录 ​编辑 说明 shell是什么? bash shell Linux命令格式 命令格式举例 命令中的其他组成 Linux系统…

基于SpringBoot的诗词学习网站的设计与实现

目录 毕设制作流程功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行代码执行流程核心代码部分展示可行性分析软件测试详细视频演示源码获取 毕设制作流程 (1)与指导老师确定系统主要功能; (2&am…

fastAPI教程:路由操作及HTTP请求响应

FastAPI 三、路由操作 3.1 路由装饰器 路由装饰器,也叫路径操作装饰器。 FastAPI提供了一系列基于HTTP请求作为方法名的装饰器给开发者用于绑定url地址提供给外界操作API接口。 HTTP方法FastAPI代码描述GETapp.get()async 方法名(): pass获取数据POSTapp.post(…

python15_转换为ASCII

转换为ASCII A A B 你好 C 66def str_to_ascii(s):# 如果输入是单个字符,直接返回其ASCII值if len(s) 1:return ord(s)# 否则返回每个字符的ASCII值列表return [ord(char) for char in s]def int_to_ascii(i):# 将整数转换为对应的ASCII字符return chr(i)if __…

光储一体化在停车场中的应用

近年来,光伏作为一种绿色环保无污染的可再生能源在中国的发展迅速。据统计,2022 全年光伏发电量为 4276 亿千瓦时,同比增长 30.8%,约占全国全年总发电量的 4.9%。然而,光伏发电也存在着不稳定性的问题,因此储能技术的发展成为克服…