obsgrid有两个依赖:ncl和netcdf
- ncl可以使用预编译的版本
ncl下载路径
我的集群是centos7.6,系统gcc版本是4.8.5,支持Opendap
下载好后,解压即可使用(也是需要把bin和lib加到系统环境变量和动态库路径的)
export NCARG_ROOT=/public/home/xiaxx/wrftest/ncl-6.6.2
export PATH=/public/home/xiaxx/wrftest/ncl-6.6.2/bin:$PATH
export INCLUDE=/public/home/xiaxx/wrftest/ncl-6.6.2/include:$INCLUDE
export LD_LIBRARY_PATH=/public/home/xiaxx/wrftest/ncl-6.6.2/lib:$LD_LIBRARY_PATH
这样就安装好了预编译的ncl
- 由于ncl预编译版本只有gnu编译器的,要保证依赖之间、依赖与软件之间使用相同的编译环境。 所以需要使用gnu编译器编译netcdf作为obsgrid的依赖。
测试使用古老好编的netcdf-4.1.3就可以
tar xzvf netcdf-4.1.3.tar.gz
./configure --prefix=/path/to/netcdf-install(安装路径) --disable-netcdf-4
make
make install
- 接下来编译obsgrid
由于obsgrid的configure.oa里定义了依赖的bin和lib,那我们实际上只要设置这两个环境变量就可以编译了:
export NCARG_ROOT=/public/home/xiaxx/wrftest/ncl-6.6.2
export NETCDF=/public/home/xiaxx/wrftest/depend/netcdf-install
./configure 选2
vim configure.oa 删掉CPP= … -C …
否则会出现:
只删掉-C 就能编译出一个可执行程序obsgrid.exe,在编译后面两个可执行程序的时候就会报错识别不了 Freetype之类的报错:
vim configure.oa 在LDFLAGS = 后加上 -lfreetype
至此全部编译成功