另外在安装的过程中
本文参照博客的讲述,介绍在linux处事器上安置netcdf的一般要领。主要的目的是实现数据压缩的成果,其他详细的介绍可以参考官方指南。
获取编译所需源码首先安置所需要的包实现Data Compression所必需的包只有四个:
HDF5 1.8.9 or later (for netCDF-4 support)
zlib 1.2.5 or later (for netCDF-4 compression)
netcdfc (latest version)
netcdf-fortran(latest version)
另:非必装:curl 7.18.0 or later (for DAP remote access client support)
安置由于一般处事器中可能会同时共存很多编译器,这里首先指定使用intel编译器编译:
指定编译器对付linux:
export CC=icc export CXX=icpc export CFLAGS='-O3 -xHost -ip -no-prec-div -static-intel' export CXXFLAGS='-O3 -xHost -ip -no-prec-div -static-intel' export F77=ifort export FC=ifort export F90=ifort export FFLAGS='-O3 -xHost -ip -no-prec-div -static-intel' export CPP='icc -E' export CXXCPP='icpc -E'对付mac:
export CC=icc export CXX=icpc export CFLAGS='-O3 -xHost -ip -no-prec-div' export CXXFLAGS='-O3 -xHost -ip -no-prec-div' export F77=ifort export FFLAGS='-O3 -xHost -ip -no-prec-div -mdynamic-no-pic' zlib安置这里为了后续便于打点,所以选择将这些包都编译安置在/usr/local/文件夹下,因此也需要sudo权限
ZDIR=http://www.mamicode.com/usr/local/zlib #安置文件夹 mkdir ${ZDIR} ./configure --prefix=${ZDIR} make check make install hdf5安置 H5DIR=http://www.mamicode.com/usr/local/hdf5 mkdir ${H5DIR} ./configure --with-zlib=${ZDIR} --prefix=${H5DIR} -enable-fortran -enable-cxx make check make install这里需要注意的是,在安置hdf5时,必需要有–with-zlib=${ZDIR},否则会报错相关库文件找不到。并且在小我私家PC机上安置时,可能会提示C++的注释方法不成用于IS90规范中,遇此错误,,目前的解决要领是找到相关文件,将C++的注释方法//改为C的注释方法/ /,目前已知安置过程中有两个文件共两处需要改削。
更多内容可以参考hdf5相关配置选项
在凭据上面所提到的过程制定编译器之后,先到jpeg的网站下载源代码包,解压后执行:
JPEGDIR=http://www.mamicode.com/usr/local/jpeg mkdir ${JPEGDIR} ./configure --prefix=${JPEGDIR} make check make install szip安置 SDIR = /usr/local/szip mkdir ${SDIR} ./configure --prefix=${SDIR} make check make install 编译安置hdf4在这一步的时候有可能会遇到一些问题,需要注意./configure 的参数。在执行前建议先使用:
./configure --help下载并解压hdf4安置包之后,请先确定处事器中是否安置了编译所需要的yacc和flex,若没有,请执行下列代码进行安置:
# ubuntu sudo apt-get install byacc sudo apt-get install flex # centos sudo yum instal byacc sudo yum install flex满足了根基的编译条件之后,执行:
mkdir /usr/local/hdf4 ./configure --with-szip=http://www.mamicode.com/usr/local/szip --with-jpeg=http://www.mamicode.com/usr/local/jpeg --with-zlib=http://www.mamicode.com/usr/local/zlib --disable-netcdf --enable-fortran --prefix=http://www.mamicode.com/usr/local/hdf4 make check #在对source code进行test的时候发此刻hdfnctest这个测试中花费大量的时间,但是在中断make check直接make install居然告成了 make install详细的参数请参考netcdf的
安置netcdfc NCDIR=http://www.mamicode.com/usr/local/netcdf4c H5DIR=http://www.mamicode.com/usr/local/hdf5 H4DIR=http://www.mamicode.com/usr/local/hdf4 mkdir ${NCDIR} CPPFLAGS=-I${H5DIR}/include LDFLAGS=-L${H5DIR}/lib CPPFLAGS=-I${H4DIR}/include LDFLAGS=-L${H4DIR}/lib export LD_LIBRARY_PATH=${H5DIR}/lib:${LD_LIBRARY_PATH} ./configure --prefix=${NCDIR} --enable-netcdf-4 --enable-largefile --disable-dap #这里在插手 --enable-hdf4参数之后始终会报错,错误为找不到hdf4 library,但是可以看到我事先已经将hdf4 lib插手到了环境变量中 这里存疑 但是不需要netcdf撑持hdf4 因此可以忽略这点 make check make install 安置netcdff NFDIR=http://www.mamicode.com/usr/local/netcdf4f NCDIR=http://www.mamicode.com/usr/local/netcdf4c mkdir ${NFDIR} export CPPFLAGS="-I/usr/local/szip/include -I/usr/local/zlib/include -I/usr/local/hdf5/include -I/usr/local/netcdf4c/include" export LDFLAGS="-L/usr/local/szip/lib -L/usr/local/zlib/lib -L/usr/local/hdf5/lib -L/usr/local/netcdf4c/lib" export LD_LIBRARY_PATH=${NCDIR}/lib:${LD_LIBRARY_PATH} CPPFLAGS=-I${NCDIR}/include LDFLAGS=-L${NCDIR}/lib ./configure --prefix=${NFDIR} --disable-fortran-type-check make check make install 安置功效 nc-config -all 注意事项由于以上代码执行的时候是需要sudo权限的,但是使用sudo执行的时候会重置环境变量,所以导致了一些错误。建议安置的时候使用sudo -E
#-E选项在man page中的解释是 -E The -E (preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the -E option is specified and the user does not have permission to preserve the environment.温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32493.html