---
title: 编译和安装
description: "以下安装使用系统GCC，请勿加载GCC9.3环境。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengncl_02_0005.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengncl_02_0005.html
indexId: 6bdf7271e2e57e0409b03abac2bed626731d2ac687245cbdfaf3a07f15f084f665
---
# 编译和安装

#### 操作步骤

以下安装使用系统GCC，请勿加载GCC9.3环境。


1. 使用PuTTY工具，以root用户登录服务器。
2. 执行以下命令安装NCL及其依赖包。

```
yum install ncl.aarch64 ncl-common.noarch ncl-devel.aarch64 ncl-examples.noarch -y
```


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

```
export NCARG_FONTCAPS=/usr/lib64/ncarg/fontcaps
export NCARG_GRAPHCAPS=/usr/lib64/ncarg/graphcaps
export NCARG_ROOT=/usr
export NCARG_DATABASE=/usr/lib64/ncarg/database
export NCARG_LIB=/usr/lib64/ncarg
export NCARG_NCARG=/usr/share/ncarg
export EXTRA_CCOPTIONS=" -fsigned-char "$EXTRA_CCOPTIONS
```


4. 执行以下命令验证程序。

```
ng4ex xy01n -W png
```


  若NCL主程序报错（如下所示），则需要重新编译主程序。

5. 执行以下命令下载NCL的RPM源码包“ncl-6.3.0-6.el7.src.rpm”。

```
yum install -y yum-utils
yumdownloader --source ncl
```


6. 执行以下命令重新编译NCL并解压NCL软件包。

```
rpm -ivh ncl-6.3.0-6.el7.src.rpm
cd
~
/rpmbuild/SOURCES
tar zxvf ncl_ncarg-6.3.0.tar.gz
```


7. 执行以下命令编辑“/libncarg_c/yMakefile”文件。

  a. 打开“/libncarg_c/yMakefile”文件。

```
vim ncl_ncarg-6.3.0/common/src/libncarg_c/yMakefile
```


  b. 按“i”进入编辑模式，修改第35行的内容。

```
#elif (defined(ia64) || defined(x86_64) || defined(amd64) ||
defined(aarch64))
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
8. 执行以下命令编辑“/nio/yMakefile”文件。

  a. 打开“/nio/yMakefile”文件。

```
vim ncl_ncarg-6.3.0/ni/src/lib/nio/yMakefile
```


  b. 按“i”进入编辑模式，修改第85行的内容。

```
#if defined(IRIX64) || defined(x86_64) || defined(__LP64__) ||
defined(aarch64)
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
9. 执行以下命令编辑“/ncl/yMakefile”文件。

  a. 打开“/ncl/yMakefile”文件。

```
vim ncl_ncarg-6.3.0/ni/src/ncl/yMakefile
```


  b. 按“i”进入编辑模式，修改如下内容。

    - 修改第46行：

```
EXTRA_CCOPTIONS = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fsigned-char
```


    - 修改第113行：

```
#if defined(IRIX64) || defined(x86_64) || defined(ia64) || defined(__LP64__) ||
defined(aarch64)
```

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
10. 执行以下命令删除原来的tar包，将修改过的源码打包。

```
rm -f ncl_ncarg-6.3.0.tar.gz
tar zcvf ncl_ncarg-6.3.0.tar.gz ncl_ncarg-6.3.0
rm -rf ncl_ncarg-6.3.0
```


11. 重新编译NCL。

  a. 执行以下命令进入“SPECS”目录。

```
cd
~
/rpmbuild/SPECS
```


  b. 执行以下命令修改“ncl.spec”文件。

```
vim ncl.spec
```


  c. 按“i”进入编辑模式，在文件末尾添加以下内容。

```
%define __debug_install_post   \
%{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
%{nil}
```


    修改如下图所示。

  d. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  e. 执行以下命令进行打包编译。

```
rpmbuild -ba ncl.spec
```


    若报错缺少依赖，根据提示依次Yum安装即可，如下所示。

```
yum install netcdf-fortran-devel hdf-static hdf-devel g2clib-static gdal-devel proj-devel imake libXaw-devel flex-static udunits2-devel
```


    直到rpmbuild -ba ncl.spec可以成功执行。如下图中出现“exit 0”，则表明成功执行。

12. 执行以下命令安装NCL（需先删除原先安装的NCL）。
  yum erase ncl.aarch64 ncl-common.noarch ncl-devel.aarch64 ncl-examples.noarch -y

```
cd
~
/rpmbuild/RPMS
cp noarch/* aarch64/
cd aarch64
yum localinstall ncl-6.3.0-6.el7.aarch64.rpm ncl-common-6.3.0-6.el7.noarch.rpm ncl-debuginfo-6.3.0-6.el7.aarch64.rpm ncl-devel-6.3.0-6.el7.aarch64.rpm ncl-examples-6.3.0-6.el7.noarch.rpm -y
```
