fortran - Compiling program using gfortran and the HDF-EOS2 library -
i have problem of linking hdf-eos library fortran90 program. have compiled library source directory specified in $prefix. simple compile command is:
gfortran -i$prefix/include -l$prefix/lib -wl,-rpath -wl,$prefix/lib -lhdfeos -lgctp -lmfhdf -ldf -lz -lsz -ljpeg tst.f90
when compiling, next error:
undefined reference `gdopen_'
in program, not supposed change, hdf-eos library used via external keyword, e.g.
integer(kind=4), external :: gdopen
in library, nm $prefix/lib/libhdfeos.a | grep gdopen gives me:
00000000000120c0 t gdopen
when compiling -fno-underscoring, different error:
gfortran -fno-underscoring -i$prefix/include -l$prefix/lib -wl,-rpath -wl,$prefix/lib -lhdfeos -lgctp -lmfhdf -ldf -lz -lsz -ljpeg tst.f90
the error then:
undefined reference `gdopen'
also, gfortran finds libraries, otherwise complain. error related underscore? else can try? work on fedora , gfortran version 4.7.2.
yes, caused underscore.
try compiling -fno-underscoring
(https://gcc.gnu.org/onlinedocs/gfortran/code-gen-options.html), fixing proper bind(c)
interface better.
this tutorial (did read before going here? easy find finish novice in library, me.) states should utilize -fno-underscoring
.
continue implementing rest tutorial recommends, including compiling fc=$(hdf4_dir)/bin/h4fc
.
fortran fortran90 gfortran hdf
No comments:
Post a Comment