---
title: 编译和安装
description: "当在x86机器上安装时，忽略步骤2、8、9和10操作。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengkmersgwas_02_0012.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengkmersgwas_02_0012.html
indexId: 35a0425719713a7fa898f0df8b5c0cc966f7b54eed721668f1b1eca90f63219e71
---
# 编译和安装

#### 操作步骤

当在x86机器上安装时，忽略步骤2、8、9和10操作。


1. 使用PuTTY工具，以root用户登录服务器。
2. 执行以下命令添加依赖sse2neon。

```
cd
/path/to/KMERSGWAS
wget https://github.com/DLTcollab/sse2neon/archive/master.tar.gz --no-check-certificate -O sse2neon-master.tar.gz
tar -zxf sse2neon-master.tar.gz
export CPLUS_INCLUDE_PATH=
/path/to/KMERSGWAS
/sse2neon-master/:$CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH=
/path/to/KMERSGWAS
/sse2neon-master/:$C_INCLUDE_PATH
```


3. 执行以下命令解压kmersGWAS安装包。

```
cd
/path/to/KMERSGWAS
tar -zxf kmersGWAS-0.2-beta.tar.gz
```


4. 执行以下命令将KMC包拷贝到kmersGWAS里。

```
tar -zxf KMC-3.1.2rc1.tar.gz
cp -rf KMC-3.1.2rc1/* kmersGWAS-0.2-beta/include/KMC/
```


5. 执行以下命令将CTPL包拷贝到kmersGWAS里。

```
tar -zxf CTPL-v.0.0.2.tar.gz
cp -rf CTPL-v.0.0.2/* kmersGWAS-0.2-beta/include/CTPL/
```


6. 执行以下命令将cxxopts包拷贝到kmersGWAS里。

```
tar -zxf cxxopts-2.2.1.tar.gz
cp -rf cxxopts-2.2.1/* kmersGWAS-0.2-beta/include/cxxopts/
```


7. 执行以下命令进入kmersGWAS安装目录。

```
cd kmersGWAS-0.2-beta
```


8. 执行以下命令删除编译项“-msse4.2”。

```
sed -i 's/-msse4.2//g' Makefile
```


9. 执行以下命令添加编译优化参数。

```
sed -i 's/-O3/-O3 -march=armv8.2-a -mtune=tsv110/g' Makefile
```


10. 执行以下命令将x86“nmmintrin.h”引用文件替换掉。

  - 将“nmmintrin.h”和“smmintrin.h”注释掉：

```
sed -i 's/#include <nmmintrin.h>/\/\/#include <nmmintrin.h>/g;s/#include <smmintrin.h>/\/\/#include <smmintrin.h>/g' src/kmers_multiple_databases.cpp
sed -i 's/#include <smmintrin.h>/\/\/#include <smmintrin.h>/g'
src/snps_multiple_databases.cpp
```


  - 引入头文件“sse2neon.h”：

```
sed -i '/#include <nmmintrin.h>/ i\#include "sse2neon.h"' src/kmers_multiple_databases.cpp
sed -i '/#include <smmintrin.h>/ i\#include "sse2neon.h"' src/
snps_multiple_databases.cpp
```


11. 执行以下命令进行编译安装。
  make -j

12. 执行以下命令删除原有的“gemma_0_96”并创建新的软连接。

```
cd
/path/to/KMERSGWAS
/kmersGWAS-0.2-beta/external_programs
rm
-rf gemma_0_96
ln -s
/path/to/GEMMA
/bin/gemma gemma_0_96
```
