1

FFTW是一個做頻譜非常實用的組件,本文講述在Windows和Linux兩個平臺使用FFTW組件。Windows下的的FFTW組件已經編譯好成爲dll文件,按照開發應用的位數下載好組件包後直接按照dll規則使用組件;Linux下則需要自己進行編譯。

FFTW源碼包的下載:http://www.fftw.org/download....

Linux編譯FFTW組件

1) 下載fftw-3.3.8.tar.gz文件,並解壓。

2) 配置fftw編譯選項

在終端輸入:

./configure --enable-type-prefix --prefix=/usr/local/fftw --with-gcc --disable-fortran --enable-i386-hacks  --enable-shared=yes

常見錯誤: 提示--enable-type-prefix沒有找到文件,此時請檢查上面命令每個選項之間的空格和縮進是否混淆,全部更改爲空格。

3) 編譯fftw

make -j8

4) 編譯安裝

make install

5) 編譯浮點fftw支持

make clean

./configure --enable-float --enable-type-prefix --prefix=/usr/local/fftw --with-gcc --disable-fortran --enable-i386-hacks --enable-shared=yes

交叉编译下的:

./configure --prefix=/usr/local/fftw-nxp-imx8 --disable-fortran --enable-armv8-cntvct-el0 --enable-shared=yes --with-sysroot=$SDKTARGETSYSROOT --host=aarch64-poky-linux --enable-float

6) 編譯fftw

make -j8

7) 編譯安裝

make install

最後在/usr/local/fftw路徑中又so、a文件。

Windows編譯FFTW組件

下载32位和64位版本后将该文件解压到自己想要设定的路径,我这里设定的c:/fftw。

然后,将文件中给所有的扩展名为.def 和 .dll文件拷贝到 qt安装路径5.10.0mingw53_32bin中,(版本号可能有区别,但是大同小异)

如果不进行上述步骤,使用的fftw组件的应用程序编译是没有问题的,但是无法启动。当在调试模式下会提示,During startup program exited with code 0x00000135的错误(Qt的bug由第三方dll文件引起)。

在Qt安装路径5.10.0mingw53_32include 路径中创建文件夹fftw,再将c:/fftw文件中的所有h文件,拷贝到该目录。

參考文獻:

[1] Installation and Customization,http://www.fftw.org/fftw2_doc...


Carlos
35 声望8 粉丝

嵌入式 \ Linux \ ARM \ Security