FFTW是一個(gè)快速計(jì)算離散傅里葉變換的標(biāo)準(zhǔn)C語(yǔ)言程序集,可計(jì)算一維或多維實(shí)和復(fù)數(shù)據(jù)以及任意規(guī)模的DFT。下面主要介紹的是 x86 環(huán)境下?FFTW庫(kù)的編譯過(guò)程,arm環(huán)境下的編譯過(guò)程和FFTW類(lèi)似,不同之處在于需要手動(dòng)指定 編譯環(huán)境 和 編譯器。
FFTW有三個(gè)版本的數(shù)據(jù)類(lèi)型:double、float和long double,在安裝時(shí)對(duì)應(yīng)不同的編譯選項(xiàng),最終得到的庫(kù)也不盡相同。(以安裝fftw 3.3版本為例)
類(lèi)型 | 庫(kù)名稱(chēng) | 編譯選項(xiàng) |
double 類(lèi)型 | fftw3-3 | 默認(rèn)安裝,無(wú)需另加編譯選項(xiàng) |
float 類(lèi)型 | fftw3f-3 | --enable-float |
long double類(lèi)型 | fftw3l-3 | --enable-long-double |
參考文章:
- Ubuntu16.04安裝Qt+qwt+fftw_wsqyouth的博客-CSDN博客
- ?https://www.cnblogs.com/klausage/p/14288935.html
目錄
一、下載 fftw 編譯包
二、x86 環(huán)境
1、安裝 fftw3(默認(rèn)安裝)
2、安裝 fftw3f
3、安裝 fftw3l
三、ARM 環(huán)境
一、下載 fftw 編譯包
下載地址:download | fftw
復(fù)制鏈接地址,然后在Linux命令使用 wget 命令下載,或者也可以先在本地下載,然后再上傳到Linux平臺(tái)。?
wget https://www.fftw.org/fftw-3.3.10.tar.gz
后續(xù)內(nèi)容可以根據(jù)自身需要選擇安裝對(duì)應(yīng)的環(huán)境。
二、x86 環(huán)境
解壓剛才下載的包,然后進(jìn)入到fftw的編譯目錄
tar -zxvf fftw-3.3.10.tar.gz
cd fftw-3.3.10/
FFTW有三個(gè)版本的數(shù)據(jù)類(lèi)型:double、float和long double,在安裝時(shí)對(duì)應(yīng)不同的編譯選項(xiàng),最終得到的庫(kù)也不盡相同。下面三個(gè)安裝過(guò)程是各自獨(dú)立的,不可一次使用所有選項(xiàng)。
類(lèi)型 | 庫(kù)名稱(chēng) | 編譯選項(xiàng) |
double 類(lèi)型 | fftw3-3 | 默認(rèn)安裝,無(wú)需另加編譯選項(xiàng) |
float 類(lèi)型 | fftw3f-3 | --enable-float |
long double類(lèi)型 | fftw3l-3 | --enable-long-double |
1、安裝 fftw3(默認(rèn)安裝)
首先,設(shè)置編譯參數(shù)檢查依賴(lài)環(huán)境等,如設(shè)置安裝路徑、是否生成動(dòng)態(tài)庫(kù)等
./configure --enable-type-prefix \
--prefix=/usr/local/fftw \
--with-gcc \
--disable-fortran \
--enable-i386-hacks \
--enable-shared=yes
- --enable-type-prefix:目的是為了同時(shí)使用single precision(單精度)和double precision(雙精度),如果不使用它,最后只有以rfftw開(kāi)頭的文件被安裝(real fftw)
- --pref=xxx:設(shè)定安裝目錄(庫(kù)文件、頭文件的保存路徑)
- --with-gcc:使用gcc編譯器
- --disable-fortran:不包含F(xiàn)ortran調(diào)用的機(jī)制
- --enable-i386-hacks:為Pentium和x86以后的CPU優(yōu)化gcc的編譯速度
- --enable-shared=yes:生成動(dòng)態(tài)庫(kù).so文件 ?否則生成的都是.a 文件
然后開(kāi)始編譯
make -j2
最后開(kāi)始安裝文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-739363.html
sudo make install
2、安裝 fftw3f
需要在之前的基礎(chǔ)上額外加上 --enable-float 表示安裝單精度版本。
./configure --enable-type-prefix \
--prefix=/usr/local/fftw \
--with-gcc \
--disable-fortran \
--enable-i386-hacks \
--enable-shared=yes \
--enable-float
?然后開(kāi)始編譯
make -j2
最后開(kāi)始安裝
sudo make install
3、安裝 fftw3l
需要在默認(rèn)安裝的基礎(chǔ)上加上?--enable-long-double 選項(xiàng)表示安裝長(zhǎng)雙精度版本。
./configure --enable-type-prefix \
--prefix=/usr/local/fftw \
--with-gcc \
--disable-fortran \
--enable-i386-hacks \
--enable-shared=yes \
--enable-long-double
?然后開(kāi)始編譯
make -j2
最后開(kāi)始安裝
sudo make install
三、ARM 環(huán)境
ARM環(huán)境的編譯和x86環(huán)境類(lèi)似,只是需要手動(dòng)指定編譯環(huán)境和編譯器。--enable-float?和?--enable-long-double 同樣適用。
下面以默認(rèn)安裝為例
./configure --prefix=/usr/local/fftw_arm \
--host=arm-linux \
CC=/usr/local/arm-xilinx-linux-gnueabi-gcc
- --prefix=xxx:指定安裝路徑為 /usr/local/fftw_arm (和上面區(qū)分)
- --host=arm-linux:指定編譯運(yùn)行環(huán)境為arm環(huán)境
- CC=xx:指定編譯器為交叉編譯工具鏈
?然后開(kāi)始編譯文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-739363.html
make -j2
最后開(kāi)始安裝
sudo make install
到了這里,關(guān)于【交叉編譯】編譯生成 x86、arm 環(huán)境下的FFTW庫(kù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!