在Ubuntu 12.04上安装netcdf

时间:2014-01-31 12:44:27

标签: fortran gfortran netcdf

我必须使用最新版本的gfortran并使用netcdf。所以我必须用这个新版本的gfortran编译netcdf库,这是4.8.2

在配置和安装netcdf之前,我必须设置以下环境变量:

#!/bin/bash

export CC="$HOME/gcc-trunk/bin/gcc"
export LDFLAGS="-L$HOME/gcc-trunk/lib -L$HOME/gcc-trunk/lib64"
export CPP="$HOME/gcc-trunk/bin/cpp"
export FC="$HOME/gcc-trunk/bin/gfortran"
export F77="$HOME/gcc-trunk/bin/gfortran -x f77"
export CXX="$HOME/gcc-trunk/bin/c++"
export CXXPP="$HOME/gcc-trunk/bin/cpp"

export LD_LIBRARY_PATH=$PWD/netcdf/lib:${LD_LIBRARY_PATH}

export CPPFLAGS="-DgFortran -cpp -I$PWD/netcdf/include"
export LDFLAGS="-L$PWD/netcdf/lib"

当我运行configure时,一切正常,但是当我进行“make check”时。我收到以下错误:

libtool: link: /home/antonio/gcc-trunk/bin/gfortran -x f77 -I../fortran -I../f90 -g -o .libs/nf_test test_get.o test_put.o nf_error.o nf_test.o test_read.o test_write.o util.o fortlib.o  -L/media/022f8e40-437e-4c37-a8b0-538c07b842a3/home/antonio/DATOS/seas_pred/Fortran_code/netcdf/netcdf-fortran-4.2/netcdf/lib ../fortran/.libs/libnetcdff.so -lnetcdf -rpath /media/022f8e40-437e-4c37-a8b0-538c07b842a3/home/antonio/DATOS/seas_pred/Fortran_code/netcdf/netcdf/lib
gfortran: error: unrecognized command line option '-rpath'
make[2]: *** [nf_test] Error 1
make[2]: se sale del directorio «/media/022f8e40-437e-4c37-a8b0-538c07b842a3/home/antonio/DATOS/seas_pred/Fortran_code/netcdf/netcdf-fortran-4.2/nf_test»
make[1]: *** [check-am] Error 2
make[1]: se sale del directorio «/media/022f8e40-437e-4c37-a8b0-538c07b842a3/home/antonio/DATOS/seas_pred/Fortran_code/netcdf/netcdf-fortran-4.2/nf_test»
make: *** [check-recursive] Error 1

似乎-rpath是一个传递给链接器的选项,因此它应该在之前添加-Wl,但它不会。

也许我应该在环境变量中添加此选项,但不知道哪个。

有人可以帮忙吗?

非常感谢。

2 个答案:

答案 0 :(得分:0)

我认为你是从错误的目录编译的。您在$PWDLD_LIBRARY_PATH&的价值字段中有CPPFLAGS LDFLAGS。最简单的修复方法是将$PWD替换为netcdf目录所在的绝对路径。

答案 1 :(得分:0)

问题是由环境变量F77引起的。

似乎configure,在未设置此变量时设置适当的值,但在设置时遇到麻烦。 我解决了它删除脚本中设置F77变量的行。

向所有厌倦寻找解决方案的人致敬,特别是对Sadiq Huq。