在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

 

posted @ 2016-03-31 16:29  之北海  阅读(2836)  评论(0编辑  收藏  举报