【交叉编译】编译生成 x86、arm 环境下的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平台。 

fftw3f,Linux 基本命令和开发工具,linux,arm开发,运维

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

最后开始安装文章来源地址https://www.toymoban.com/news/detail-739363.html

sudo make install

fftw3f,Linux 基本命令和开发工具,linux,arm开发,运维

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

fftw3f,Linux 基本命令和开发工具,linux,arm开发,运维

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

fftw3f,Linux 基本命令和开发工具,linux,arm开发,运维

三、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

到了这里,关于【交叉编译】编译生成 x86、arm 环境下的FFTW库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu x86搭建 麒麟arm QT6交叉编译

    近期项目需求开发平台是unbuntu x86,目标机器是UOS arm架构,由于需要在不同平台上使用程序,需要建立基于QT6.32的交叉编译平台 交叉编译器 https://blog.csdn.net/zhang421412170/article/details/110952705 下载 gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz(因为我这里用的是linux平台进行编译,需要

    2024年02月13日
    浏览(48)
  • cmake与交叉编译(x86 to arm)过程和问题全记录

    公司维护一批c++动态库,由于生产需要,每次更新都要在windows、linux_x86、kylin_arm等多个环境中编译一遍,操作比较麻烦,所以想通过交叉编译的方式在一台机器上边编译多个环境的动态库,减少工作量。考虑到工作难度以及本人水平,决定从官方发布的成品交叉编译工具链中

    2024年04月28日
    浏览(46)
  • Qt教程3-Ubuntu(x86_64)上配置arm64(aarch64)交叉编译环境及QT编译arm64架构工程

    苦辣酸甜时光八载,春夏秋冬志此一生 Qt简介: Qt(官方发音 [kju:t],音同 cute)是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。 Qt 支持的操作系统有很多,例如通用

    2024年01月23日
    浏览(51)
  • 交叉编译----宿主机x86 ubuntu 64位-目标机ARMv8 aarch64

    1.交叉编译是什么,为什么要交叉编译 编译:在一个平台上生成在该平台上的可执行代码 交叉编译:在一个平台上生成在另一个平台上的可执行代码 交叉编译的例子:如51单片机的可执行代码(hex文件)是在集成环境keil上面编译完成的,我们只需要将编译好的可执行代码下

    2024年02月15日
    浏览(46)
  • 带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)

    带wiringPi库的交叉编译如何进行 先交叉编译wiringPi库,编译出的库适合香橙派,这时候交叉编译可执行程序的平台和链接库的格式也是正确的 ,然后通过-I和-L来指定链接的wiringPi库的头文件和库的位置,但是现在还没有学习过,后面学了补上 此时如果把wiringPi库拿到Ubuntu上进

    2024年02月15日
    浏览(47)
  • 【保姆级教程】Docker服务在双架构(X86和ARM)编译统一实践

    在现代计算机系统中,X86和ARM64是两种常见的处理器架构。为了满足不同架构的需求,Docker镜像也需要支持双架构编包形式。本文将介绍Docker镜像双架构编包统一的实践     在Docker镜像中,通常使用多阶段构建来实现。在第一阶段,构建出对应架构服务的二进制文件;在第二

    2024年02月07日
    浏览(52)
  • WIN10 x86环境部署ARM虚拟机(银河麒麟)

    我们经常使用的是x86架构的cpu,而对于不同cpu架构的arm架构的操作系统,我们可以通过QEMU模拟器来进行模拟一个arm环境 1、部署前的准备 arm的镜像: 以此镜像为例:Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso QEMU 软件: 下载地址:https://qemu.weilnetz.de/w64/2021/qemu-w64-setup-202105

    2024年02月04日
    浏览(54)
  • ubuntu22.04 x86环境上使用QEMU搭建arm虚拟机

    apt-get -y install qemu apt-get -y install bridge-utils apt-get -y install vnc4server apt-get -y install qemu-kvm apt install -y qemu-system-arm apt-get -y install libvirt0 apt-get -y install libvirt-daemon apt-get -y install libvirt-daemon-system 安装完成后检查: virsh version ls /usr/bin/|grep qemu wget http://releases.linaro.org/components/kernel/

    2024年02月07日
    浏览(90)
  • ubuntu上安装boost库为SOMEIP的X86和ARM下编译做准备(编译两种版本)

    Boost库是C++拓展库,是SOMEIP源码编译所必需的库。编译 Boost 库时,需要根据不同的架构,选择不同的工具链和参数 首先,Boost源码下载,Boost官网:https://www.boost.org 基于此处我编译的SOMEIP源码版本,需要安装1.74版本的Boost库,下载链接:https://boostorg.jfrog.io/artifactory/main/relea

    2024年02月10日
    浏览(44)
  • Linux conan+cmake管理的项目如何进行多架构编译(x86_64及交叉编译arm64)

    Conan 和 CMake 是两个非常流行的跨平台开发工具,它们可以让开发者轻松管理依赖和构建项目,支持多种操作系统和架构。下面是一些关于 conan 和 cmake 的介绍: Conan Conan 是一个用于管理 C++ 依赖项的开源工具。它可以从公共或私有存储库中自动下载和安装依赖项。Conan 可以轻

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包