在linux上编译NCO 4.5.5
1.先安装所需的库文件
下面的所有编译是在gcc和gfortran编译器下编译。
# ANTLR2
cd $INSTALL_PATH/src
tar xzf antlr-2.7.7.tar.gz ; cd antlr-2.7.7
CC=gcc CXX='' ./configure \
--prefix=$ANTLR_PATH \
--disable-csharp \
--disable-java \
--disable-python 2>&1 | tee $APP.config
make 2>&1 | tee $APP.make
make install 2>&1 | tee $APP.install
# UDUNITS
cd $INSTALL_PATH/src
tar xzf udunits-2.1.20.tar.gz ; cd udunits-2.1.20
CC=gcc CXX='' F77=gfortran ./configure \
--prefix=$UDUNITS_PATH 2>&1 | tee $APP.config
make 2>&1 | tee $APP.make
make install 2>&1 | tee $APP.install
# ZLIB
cd $INSTALL_PATH/src
tar zxf zlib-1.2.5.tar.gz ; cd zlib-1.2.5
CC=gcc FC=gfortran CXX='' ./configure \
--prefix=$ZLIB_PATH | tee $APP.config
make 2>&1 | tee $APP.make
make install 2>&1 | tee $APP.install
# GSL
tar xzf gsl-1.16.tar.gz ; cd gsl-1.16
./configure \
--prefix=$GSL_PATH \
CFLAGS="-fexceptions" | tee $APP.config
make 2>&1 | tee $APP.make
make install 2>&1 | tee $APP.install
# HDF5
cd $INSTALL_PATH/src
tar xzf hdf5-1.8.6.tar.gz ; cd hdf5-1.8.6
CC=gcc FC=gfortran CXX='' ./configure \
--prefix=$HDF5_PATH \--enable-fortran \
--with-zlib=$ZLIB_PATH \
--with-pic 2>&1 | tee $APP.config
make 2>&1 | tee $APP.make
make install 2>&1 | tee $APP.install
# NetCDF4
cd $INSTALL_PATH/src
tar xzf netcdf-4.1.1.tar.gz ; cd netcdf-4.1.1
CC=gcc FC=gfortran F77=gfortran CXX='' ./configure \
--prefix=$NETCDF4_PATH \
--enable-fortran \
--enable-static \
--enable-shared\
--enable-f77 \
--disable-cxx \
--enable-netcdf4 \
--with-hdf5=$HDF5_PATH \
--with-zlib=$ZLIB_PATH \
--with-pic 2>&1 | tee $APP.config
make 2>&1 | tee $APP.make
make install 2>&1 | tee $APP.install
2.安装NCO
上面的库文件都安装好了之后,然后安装NCO,可以将所有命令写进脚本里,为了防止和己经安装过的netcdt、hdf库之间有冲突,这里写一个bash脚本,并在里面重新export环境变量。
1 export APP=NCO 2 export ROOT=# 路径自己结合实际情况来改,下同 3 export HDF5_PATH=$ROOT/hdf-1.8.6 4 export NETCDF4_PATH=$ROOT/netcdf4.1.1 5 export ANTLR_PATH=$ROOT/antlr277 6 export UDUNITS_PATH=$ROOT/udunits-2.2.17 7 export ZLIB_PATH=$ROOT/zlib1.2.5 8 export NCO_PATH=$ROOT/nco-4.5.5 9 10 export LD_LIBRARY_PATH=$HDF5_PATH/lib:$LD_LIBRARY_PATH 11 export PATH=$HDF5_PATH/bin:$PATH 12 export LD_LIBRARY_PATH=$NETCDF4_PATH/lib:$LD_LIBRARY_PATH 13 export PATH=$NETCDF4_PATH/bin:$PATH 14 export LD_LIBRARY_PATH=$ANTLR_PATH/lib:$LD_LIBRARY_PATH 15 export PATH=$ANTLR_PATH/bin:$PATH 16 export LD_LIBRARY_PATH=$UDUNITS_PATH/lib:$LD_LIBRARY_PATH 17 export PATH=$UDUNITS_PATH/bin:$PATH 18 export LD_LIBRARY_PATH=$ZLIB_PATH/lib:$LD_LIBRARY_PATH 19 export PATH=$ZLIB_PATH/bin:$PATH 20 export CC=gcc CXX='' 21 export NETCDF_INC=$NETCDF4_PATH/include 22 export NETCDF_LIB=$NETCDF4_PATH/lib 23 export NETCDF4_ROOT=$NETCDF4_PATH 24 export HDF5_LIB_DIR=$HDF5_PATH/lib 25 export UDUNITS2_PATH=$UDUNITS_PATH 26 LDFLAGS=-L$ANTLR_PATH -lantlr \ 27 -lhdf5_hl -lhdf5 -L$NETCDF4_PATH/lib -lnetcdf LIBS='-lcurl' \ 28 CFLAGS=-I$HDF5_PATH/include \ 29 -L$HDF5_PATH/lib \ 30 -I$ANTLR_PATH/include \ 31 -L$ANTLR_PATH/lib 32 33 CPPFLAGS=-I$HDF5_PATH/include \ 34 -L$HDF5_PATH/lib \ 35 -I$ANTLR_PATH/include \ 36 -L$ANTLR_PATH/lib 37 38 ./configure --prefix=$NCO_PATH --disable-shared --enable-netcdf-4 2>&1 | tee $APP.config 39 40 make 2>&1 | tee $APP.make 41 42 make install 2>&1 | tee $APP.install