---
title: 编译和安装
description: "1. 执行以下命令解压安装包。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/kylin_kunpeng_gptl_811_02_0008.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/kylin_kunpeng_gptl_811_02_0008.html
indexId: 48dec7d8d6919638a481d7ced848f3138213c58323a4148b1d42e296abc1e31a77
---
# 编译和安装

#### 操作步骤

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

```
cd
/path/to/GPTL
tar xf
GPTL-8.1.1.tar.gz
c
d GPTL-8.1.1
```


2. 执行以下命令修改相关文件。

  a. 修改gptl.c

```
vim src/gptl.c
```


    修改第3070行，将asm volatile ("rdtsc":"=a" (a), "=d" (d));替换为以下内容。

```
Description: __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi))
Suggestion: static uint64_t Rdtsc()
{
uint64_t count_num;
Current_Speed = 2400; // Current Speed =2400MHz
External_Clock = 100; // External Clock = 100MHz
__asm__ __volatile__ ("mrs %0, cntvct_el0" : "=r" (count_num));
return count_num * (Current_Speed / External_Clock);
}
```


    修改第3083行，将_asm__ __volatile__("rdtsc":"=A" (val): );替换为以下内容。

```
Description: __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi))
Suggestion: static uint64_t Rdtsc()
{
uint64_t count_num;
Current_Speed = 2400; // Current Speed =2400MHz
External_Clock = 100; // External Clock = 100MHz
__asm__ __volatile__ ("mrs %0, cntvct_el0" : "=r" (count_num));
return count_num * (Current_Speed / External_Clock);
}
```


  b. 修改Makefile。

```
vim
unsupported_utils/
cprsummary/Makefile
```


    将第1行改成CCC= clang

    将第2行改成CFLAGS = -march=armv8.2-a

```
vim
unsupported_utils/
loadbal
/Makefile
```


    将第1行改成CCC= clang

    将第2行改成CFLAGS = -march=armv8.2-a

3. 执行以下命令生成configure文件。

```
autoreconf -i
```


4. 执行以下命令生成makefile文件。

```
.
/
configure
--enable-debug --enable-libunwind --prefix=
/path/to/GPTL
```


5. 执行以下命令修改libtool文件。

```
sed -i 's|wl=""|wl="-Wl,"|g' libtool
```


6. 执行以下命令编译安装。

```
make
make install
```


7. 执行以下命令设置环境变量。

```
export PATH=
/path/to/GPTL
/bin:$PATH
export LD_LIBRARY_PATH=
/path/to/GPTL
/lib:$LD_LIBRARY_PATH
```
