---
title: 迁移步骤
description: "用户可以通过以下两种方法将FFTW迁移到KML_FFT。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_12_0035.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_12_0035.html
indexId: b1e0d4b195d10e2d90dd31e648de36c9abbebfbed8b6f5157fb8fb3c81c5ce7670
---
# 迁移步骤

#### C语言迁移步骤

用户可以通过以下两种方法将FFTW迁移到KML_FFT。

方法一：直接迁移

1. 使用全局替换，将带有fftw前缀的接口替换成kml_fft前缀，将带有fftwf前缀的接口替换成kml_fftf前缀，如果有使用到FFTW头文件定义的宏定义常量，也需要将FFTW前缀替换成KML_FFT前缀。将#include <fftw.h>替换成#include <kfft.h> 。
2. 在编译选项中将-lfftw/-lfftwf替换为-lkfft/-lkfftf。
3. 添加环境变量，/PATH_TO_KFFT为KML_FFT的安装路径。

```
export LD_LIBRARY_PATH=/PATH_TO_KFFT:$LD_LIBRARY_PATH
```


方法二：通过开源适配层迁移

1. 使用RPM包安装KML。

```
rpm -ivh boostkit-kml-
xxxx
.aarch64.rpm
```


2. 下载鲲鹏数学库开源适配层。
  下载链接：https://gitee.com/openeuler/kml_adapter(https://gitee.com/openeuler/kml_adapter)

3. 在kml_fft_adapter目录下进行编译。

```
cd kml_fft_adapter
sh build.sh
```


4. 在build目录下会生成适配的动态库libfftw3f.so和libfftw3.so，使用生成适配的动态库可直接替换软件中链接的fftw库。
5. 添加环境变量，/PATH_TO_FFT_ADAPTER/build为开源适配层动态库的安装路径。

```
export LD_LIBRARY_PATH=/PATH_TO_FFT_ADAPTER/build:$LD_LIBRARY_PATH
```


#### Fortran接口迁移步骤

FFTW包含f77，f90，f03接口，其中f77接口定义与KML_FFT提供的Fortran接口不同，但内部逻辑实现基本相同。需要在KML_FFT外层封装一层适配f77的头文件。
