1、首先编译zlib
cd zlib-1.2.11
./configure
#打开makefile文件,在CFLAGS语句后增加-fPIC -march=loongarch64
#CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -march=loongarch64 -fPIC
make
sudo make install
2、编译NETCDF4.1.1
这是netCDF库c库和fortran库分开之前最后一个稳定的版本。
编译指令
./configure --disable-dap --prefix=/usr/local/NETCDF411G
make
make install
由于是NETCDF4.1.1构建时还没有龙芯,因此需要更新下述两个文件,并将这两个文件赋予可执行权限。
config.guess、
config.sub
脚本的作用是猜测你的构建系统类型。
3、编译hdf5
替换hdf5-1.8.16/bin目录下的config.guess config.sub文件
export H5DIR=/usr/local/HDF51816
./configure -with-zlib=/usr/local/lib --prefix=${H5DIR} -enable-hl
make
sudo make install
4、编译NETCDF4.2以后版本,c库和fortran库虽然分开,但是需要配合使用,版本不能差别过大,这也是很多人遇到莫名其妙的netcdf问题的原因之一。
本次使用netcdf-c4.6.2和f库4.4.5。
#编译netcdf-c
cd netcdf-c-4.6.2
cp ../netcdf-4.1.1/config.guess ./
cp ../netcdf-4.1.1/config.sub ./
CPPFLAGS='-I/usr/local/HDF51816/include -I/usr/local/include' LDFLAGS='-L/usr/local/HDF51816/lib -L/usr/local/lib' ./configure --disable-dap --prefix=${NCDIR}
make
make install
#编译netcdf-f
cd netcdf-fortran-4.4.5/
cp ../netcdf-4.1.1/config.guess ./
cp ../netcdf-4.1.1/config.sub ./
CPPFLAGS='-I/usr/local/HDF51816/include -I/usr/local/NETCDFC462G/include' LDFLAGS='-L/usr/local/NETCDFC462G/lib -L/usr/local/HDF51816/lib' ./configure --prefix=${NFDIR}
编译完毕后,将f库和c库的lib下的文件合并到一个文件夹下,并给予环境变量。
export NETCDF=/usr/local/NETCDFC462G
export NETCDF_INC=$NETCDF/include
export NETCDF_LIB=$NETCDF/lib
export PATH=$PATH:$NETCDF/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NETCDF/lib