ubuntu使用交叉编译链编译FFTW动态库

一、从官方下载FFTW压缩包

1. 在  /usr/local  新建目录fftw目录, 将压缩包放在 /usr/local/fftw 中解压。

 2.打开解压后的文件

导入环境变量:

export  PATH=$PATH:/home/theer/workspace/a64/cqa64_linuxqt5.8_bv3s/buildroot-2017.02.3/output/host/bin

为什么导入这个环境变量?

因为我们要使用ARM64位的交叉编译工具链来编译动态库。

3.写入配置脚本语句进行编译

./configure --prefix=/usr/local/fftw --host=arm-linux --disable-fortran --enable-shared=yes --with-slow-timer CC=aarch64-buildroot-linux-gnu-cc

这行命令是用来配置 FFTW (快速傅里叶变换库)的编译和安装设置的。每个选项都有特定的意义,这里我将逐一解释:

  1. ./configure: 这是一个脚本,用于设置软件的编译和安装参数。它检查你的系统环境并准备编译和安装过程所需的适当设置。

  2. --prefix=/usr/local/fftw: 这指定了安装路径。即,FFTW 将被安装到 /usr/local/fftw 目录下。如果不指定,默认通常是 /usr/local

  3. --host=arm-linux: 这是交叉编译的设置,指定目标主机的类型。在这里,它告诉配置脚本生成适合在 ARM 架构的 Linux 系统上运行的代码。如果你在一个 x86 机器上编译代码,但目的是在 ARM 设备上运行,这就是所谓的交叉编译。

  4. --disable-fortran: 此选项禁用 FORTRAN 语言的支持。如果你不需要在 FFTW 中使用 FORTRAN 接口,可以禁用它,这可能会减少编译时间和复杂性。

  5. --enable-shared=yes: 这确保构建的库是共享库(例如 .so 文件),而不是静态库(.a 文件)。共享库可以由多个程序共用,节省空间,并允许动态更新。

  6. --with-slow-timer: 这是 FFTW 特定的选项,通常用于在不支持更高精度定时器的系统上编译。这可能影响某些时间敏感的操作。

  7. CC=aarch64-buildroot-linux-gnu-cc: 这指定了用于编译的 C 语言编译器。在这个例子中,使用的是为 ARM 架构定制的交叉编译器。

总的来说,这个命令行配置了 FFTW 的编译过程,以适应特定的系统和需求,尤其是在交叉编译环境中针对 ARM Linux 系统。

4.编译库然后安装库

在解压出来的文件中执行编译命令:

 make -j2

执行安装动态库的命令:

sudo make install

二、查看编译出来的动态库 

安装好的FFTW动态库在我们最开始新建的 fftw/lib中。lib文件夹是执行安装命令后创建的。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是访问学者?如何申请访问学者?一文秒懂访问学者

一、什么是访问学者? 访问学者是指具有一定学术背景、科研能力或者工作经历的人,前往国外大学进行专业领域的短期进修学习。访问学者需要在规定时间内完成规定进修或研究计划,通常为几个月至一年。进修期间,访问学者可参加课程、…

利用CAD绘制角度斜线的简易指南---模大狮模型网

在CAD设计中,绘制角度斜线是常见的需求,尤其在工程、建筑等领域中。正确绘制角度斜线不仅可以提高图纸的清晰度和美观度,还有助于准确表达设计意图。本文将介绍如何利用CAD软件进行角度斜线的绘制,为您提供简明易懂的操作指南。 一…

【2024】最新开源版 酒店预约小程序源码 酒店管理系统源码

源码简介: 随着移动互联网的快速发展,酒店行业也逐渐步入数字化、智能化的新时代。通过引入酒店预约小程序和酒店管理系统,酒店可以实现线上线下无缝对接,提高客户体验和服务质量。 分享一款【2024】最新酒店预约小程序源码、酒…

STM32IAP学习笔记

单片机不同的程序下载方式 ICP ICP是指在电路中编程。使用厂家配套的软件或仿真器进行程序烧录,目前主流的有JTAG接口和SWD接口,常用的烧录工具为J-Link、ST-Link等。在程序开发阶段,通常在连接下载器的情况下直接使用编程软件进行程序下载调…

【QuikGraph】C#调用第三方库计算有向图、无向图的连通分量

QuikGraph库 项目地址:https://github.com/KeRNeLith/QuikGraph 相关概念 图论、连通分量、强连通分量相关概念,可以从其他博客中复习: https://blog.csdn.net/weixin_50564032/article/details/123289611 https://zhuanlan.zhihu.com/p/3…

安装ps提示找不到msvcp140.dll,无法继续执行此代码如何修复

MSVCP140.dll,作为Windows操作系统中的一个关键组件,扮演着不可或缺的角色,尤其对于基于C开发的应用程序而言。本文旨在深入探讨这一动态链接库文件的功能、重要性、常见问题及解决方案,为您提供全面的MSVCP140.dll指南。 一、MSV…

关于nvm管理node版本的一些问题

背景: 基于开发项目的迭代不能做到全部更新,有的项目是vue2.0 有的项目是vue3.0, 那么我们开发的时候就需要对node 进行更新,进而产生因为版本不同导致的错误:由此我们需要一款管理 切换node版本的东西,那就…

Git 分支命令操作详解

目录 1、分支的特点 2、分支常用操作 3、分支的使用 3.1、查看分支 3.2、创建分支 3.3、修改分支 3.4、切换分支 3.5、合并分支 3.6、产生冲突 3.7、解决冲突 3.8、创建分支和切换分支说明 1、分支的特点 同时并行推进多个功能开发,提高开发效率。各个分…

静态住宅IP优缺点总结

在进行海外 IP 代理时,了解动态住宅 IP 和静态住宅 IP 的区别以及如何选择合适的类型非常重要。本文将介绍精态住宅 IP 特点和,并提供选择建议,帮助您根据需求做出明智的决策。 静态住宅 IP 的特点 静态住宅 IP 是指 IP 地址在一段时间内保…

【提示学习论文】TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model

TCP:Textual-based Class-aware Prompt tuning for Visual-Language Model(CVPR2024) 基于文本的类感知提示调优的VLMKgCoOp为baseline,进行改进,把 w c l i p w_{clip} wclip​进行投影,然后与Learnable prompts进行…

java springboot连接sqlserver使用

pom.xml增加sqlserver驱动 <dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>9.4.0.jre8</version></dependency>application.yml配置文件 server:port: 9001 #spring: …

Python多任务

进程 1. 进程的概念 一个正在运行的程序或者软件就是一个进程&#xff0c;它是操作系统进行资源分配的基本单位&#xff0c;也就是说每启动一个进程&#xff0c;操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。 比如:现实生活中的公司可以理解成是一个进程&a…