1. 程式人生 > >FFTW庫在ARM平臺上的使用(1) 交叉編譯FFTW庫

FFTW庫在ARM平臺上的使用(1) 交叉編譯FFTW庫

(轉載請說明出處)

1.

下載原始碼

http://www.vesperix.com/arm/fftw-arm/source/index.html

2.

配置   重點是配置這塊

檢視解壓原始碼中的 readme 和install 文字

在終端 進入原始碼目錄   ./configure --help   檢視配置幫助

./configure --enable-single --enable-neon --prefix=/usr/local/fftw_arm --host=arm-linux CC=arm-linux-gcc CFLAGS="-march=armv4t -mfloat-abi=softfp -mtune=arm920t -O3 -mfpu=neon -ftree-vectorize -ffast-math" --build=i686-pc-linux-gnu --target=arm-linux --disable-fortran  --enable-shared=yes --with-gcc-arch=armv4t --enable-armv7a-cycle-counter  ARM_CPU_TYPE=ARM920T ARM_FLOAT_ABI=softfp

 --build=i686-pc-linux-gnu     本地的GCC

不然出現如下錯誤資訊

configure:4273: checking whether we are cross compiling
configure:4281: arm-linux-gcc -o conftest    conftest.c  >&5
configure:4285: $? = 0
configure:4292: ./conftest
./configure: line 4294: ./conftest: cannot execute binary file
configure:4296: $? = 126
configure:4303: error: in `/opt_qt4.5/opt/EmbedSky/fftw-3.2.2-arm':
configure:4305: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

--host=arm-linux  CC=arm-linux-gcc  交叉編譯器  用於ARM9  平臺  

CFLAGS="-march=armv4t -mfloat-abi=softfp -mtune=arm920t -O3 -mfpu=neon -ftree-vectorize -ffast-math"    編譯配置選項 

不然出現如下錯誤資訊:
/tmp/ccBN5kXd.s: Assembler messages:
/tmp/ccBN5kXd.s:90: Error: bad instruction `vmov.f32 d0,#0.0'
make[3]: *** [neon.lo] 錯誤 1
make[3]: Leaving directory `/opt_qt4.5/opt/EmbedSky/fftw-3.2.2-arm/simd'
make[2]: *** [all-recursive] 錯誤 1
make[2]: Leaving directory `/opt_qt4.5/opt/EmbedSky/fftw-3.2.2-arm/simd'
make[1]: *** [all-recursive] 錯誤 1
make[1]: Leaving directory `/opt_qt4.5/opt/EmbedSky/fftw-3.2.2-arm'
make: *** [all] 錯誤 2

上面這個編譯選項 搞了我一天  SIMD  neon 指令相關

看這篇文章就知道 上面的引數時什麼意思  

http://www.360doc.com/content/11/0322/09/3700464_103410946.shtml

3.
make
4.
make install