---
title: 修改源代码
description: "1. 单击源码迁移报告中“需迁移的代码行”中“处理建议”列的“展开”按钮，如图1所示。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/demo/smartdenovoptCli_21_0012.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/demo/smartdenovoptCli_21_0012.html
indexId: b12d3d6643384f399544ea59e189b01b2234dc2762c47c0e76a263725708460873
---
# 修改源代码

1. 单击源码迁移报告中“需迁移的代码行”中“处理建议”列的“展开”按钮，如图1所示。
  图1 查看建议源码

2. 根据迁移报告，确认有两个文件需要修改。检查每个文件的修改建议，并根据建议进行源代码修改。

#### 修改Makefile文件

根据源码迁移报告中Makefile文件的源码处理建议，修改Makefile文件，如图2所示。

图2 Makefile文件源码迁移建议

根据以上建议，Makefile文件中需要给CFLAGS变量添加选项“-march=armv8.2-a -fsigned-char”，同时，还需要删除CFLAGS变量中的“-mpopcnt”和“-mssse3”选项。获取并安装鲲鹏系统库（BoostKit-ksl_2.3.1.zip(https://www.hikunpeng.com/boostkit/library/detail?subtab=AVX2KI)）后，在GLIBS变量中添加“-I /usr/local/ksl/include/ -L /usr/local/ksl/lib/ -lavx2ki”。

该示例以编译器GCC 4.8.5为例，高版本“-march=armv8.2-a -fsigned-char”选项会有不同，请根据提示建议进行修改。


修改后的代码（修改时进行了x86_64分支和aarch64分支的区分处理），如图3所示。

图3 修改后的Makefile


#### 修改ksw.c文件

根据源码迁移报告中ksw.c文件的源码处理建议修改ksw.c文件，如图4所示。

图4 ksw.c文件源码迁移建议

根据示例建议，需针对x86和AArch64分别设置头文件包含的分支定义，以确保在代码同时适配x86和AArch64两种架构的情况下完成代码的修改，如下所示（以编辑器版本GCC 4.8.5为例）。

新增1 ~ 3行，然后将31行替换为31 ~ 33行内容。

```
1    #if defined(__aarch64__)
2       #include "avx2ki.h"
3    #endif
31   #if defined(__x86_64__)
32      #include <emmintrin.h>
33   #endif
```
