mkdir /path/to/ncl cd /path/to/ncl
wget https://github.com/chen-shaoheng/NCL-SOURCE/releases/download/ncl-6.6.2/ncl-6.6.2.tar.gz
tar -xvf ncl-6.6.2.tar.gz
cd ncl-6.6.2/
sed -i '21c #define CCompiler gcc' config/LINUX sed -i '22c #define FCompiler gfortran' config/LINUX sed -i '23c #define CtoFLibraries -lgfortran -lmathlib -ltirpc' config/LINUX sed -i '24c #define CtoFLibrariesUser -lgfortran -lmathlib -ltirpc' config/LINUX sed -i '25c #define CcOptions -ansi -fPIC -fopenmp -std=c99 -fsigned-char -Xlinker -zmuldefs -Wl,--copy-dt-needed-entries' config/LINUX sed -i '26c #define FcOptions -fPIC -fno-second-underscore -fno-range-check -fopenmp -fallow-argument-mismatch -Wl,--copy-dt-needed-entries' config/LINUX
GCC为10及以上的版本时请在第26行添加-fallow-argument-mismatch参数。
sed -i '40a void _swapshort (register char *bp, register unsigned n);' ncarview/src/lib/libncarg_ras/misc.c sed -i '41a void _swaplong (register char *bp, register unsigned n);' ncarview/src/lib/libncarg_ras/misc.c
sed -i "31a #else\nMORE_LIBS = -lm" ncarview/src/bin/ictrans/yMakefile
查看如下,表示修改完成。
cd /path/to/ncl/ncl-6.6.2/ncarview/src/bin/ictrans vim yMakefile
添加#以注释,如下显示表示修改完成。
首次编译时,如config目录下存在ymake-filter文件,请执行以下命令删除ymake-filter。
rm config/ymake-filter -rf
cd /path/to/ncl/ncl-6.6.2 ./Configure
进入安装引导界面,根据实际需要进行配置。
回显如下,表示配置完成。
cd /path/to/ncl/ncl-6.6.2/ vim Makefile
将第137、138、139行修改如下图所示。
make Everything >& make-output &
可以通过执行tail -f make-output命令查看编译详情。
在命令行下执行ll /path/to/ncl/bin 查看文件生成情况,如下图所示,最终编译生成名为ncl的二进制文件即表示编译正常结束。
ln -s /path/to/ncl/share/ncarg/* /path/to/ncl/lib/ncarg
export NCARG_FONTCAPS=/path/to/ncl/lib/ncarg/fontcaps export NCARG_GRAPHCAPS=/path/to/ncl/lib/ncarg/graphcaps export NCARG_ROOT=/path/to/ncl export NCARG_DATABASE=/path/to/ncl/lib/ncarg/database export NCARG_LIB=/path/to/ncl/lib export NCARG_NCARG=/path/to/ncl/lib/ncarg export PATH=/path/to/ncl:$PATH export LD_LIBRARY_PATH=/path/to/ncl/lib:$LD_LIBRARY_PATH