一、从官方下载FFTW压缩包
1. 在 /usr/local 新建目录fftw目录, 将压缩包放在 /usr/local/fftw 中解压。
2.打开解压后的文件
导入环境变量:
export PATH=$PATH:/home/theer/workspace/a64/cqa64_linuxqt5.8_bv3s/buildroot-2017.02.3/output/host/bin
为什么导入这个环境变量?
因为我们要使用ARM64位的交叉编译工具链来编译动态库。
3.写入配置脚本语句进行编译
./configure --prefix=/usr/local/fftw --host=arm-linux --disable-fortran --enable-shared=yes --with-slow-timer CC=aarch64-buildroot-linux-gnu-cc
这行命令是用来配置 FFTW (快速傅里叶变换库)的编译和安装设置的。每个选项都有特定的意义,这里我将逐一解释:
-
./configure
: 这是一个脚本,用于设置软件的编译和安装参数。它检查你的系统环境并准备编译和安装过程所需的适当设置。 -
--prefix=/usr/local/fftw
: 这指定了安装路径。即,FFTW 将被安装到/usr/local/fftw
目录下。如果不指定,默认通常是/usr/local
。 -
--host=arm-linux
: 这是交叉编译的设置,指定目标主机的类型。在这里,它告诉配置脚本生成适合在 ARM 架构的 Linux 系统上运行的代码。如果你在一个 x86 机器上编译代码,但目的是在 ARM 设备上运行,这就是所谓的交叉编译。 -
--disable-fortran
: 此选项禁用 FORTRAN 语言的支持。如果你不需要在 FFTW 中使用 FORTRAN 接口,可以禁用它,这可能会减少编译时间和复杂性。 -
--enable-shared=yes
: 这确保构建的库是共享库(例如.so
文件),而不是静态库(.a
文件)。共享库可以由多个程序共用,节省空间,并允许动态更新。 -
--with-slow-timer
: 这是 FFTW 特定的选项,通常用于在不支持更高精度定时器的系统上编译。这可能影响某些时间敏感的操作。 -
CC=aarch64-buildroot-linux-gnu-cc
: 这指定了用于编译的 C 语言编译器。在这个例子中,使用的是为 ARM 架构定制的交叉编译器。
总的来说,这个命令行配置了 FFTW 的编译过程,以适应特定的系统和需求,尤其是在交叉编译环境中针对 ARM Linux 系统。
4.编译库然后安装库
在解压出来的文件中执行编译命令:
make -j2
执行安装动态库的命令:
sudo make install
二、查看编译出来的动态库
安装好的FFTW动态库在我们最开始新建的 fftw/lib中。lib文件夹是执行安装命令后创建的。