Qt上FFTW組件的编译与安裝
Qt上FFTW組件的編譯安裝
FFTW是一個做頻譜非常實用的組件,本文講述在Windows和Linux兩個平臺使用FFTW組件。Windows下的的FFTW組件已經編譯好成爲dll文件,按照開發應用的位數下載好組件包後直接按照dll規則使用組件;Linux下則需要自己進行編譯。
FFTW源碼包的下載:http://www.fftw.org/download.html
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
6) 編譯fftw
make -j8
7) 編譯安裝
make install
最後在/usr/local/fftw路徑中又so、a文件。
Windows編譯FFTW組件
下载32位和64位版本后将该文件解压到自己想要设定的路径,我这里设定的c:/fftw。
然后,将文件中给所有的扩展名为.def 和 .dll文件拷贝到 qt安装路径\5.10.0\mingw53_32\bin中,(版本号可能有区别,但是大同小异)
如果不进行上述步骤,使用的fftw组件的应用程序编译是没有问题的,但是无法启动。当在调试模式下会提示,During startup program exited with code 0x00000135的错误(Qt的bug由第三方dll文件引起)。
在Qt安装路径\5.10.0\mingw53_32\include 路径中创建文件夹fftw,再将c:/fftw文件中的所有h文件,拷贝到该目录。
參考文獻:
[1] Installation and Customization,http://www.fftw.org/fftw2_doc/fftw_6.html#SEC69