HDF-EOS ライブラリを Fortran90 プログラムにリンクする際に問題があります。ライブラリをソースから $prefix で指定されたディレクトリにコンパイルしました。私の簡単なコンパイルコマンドは次のとおりです。
gfortran -I$prefix/include -L$prefix/lib -Wl,-rpath -Wl,$prefix/lib -lhdfeos -lGctp -lmfhdf -ldf -lz -lsz -ljpeg tst.f90
コンパイルすると、次のエラーが発生します。
undefined reference to `gdopen_'
私が変更する予定のないプログラムでは、HDF-EOS ライブラリは外部キーワードを介して使用されます。
integer(kind=4), external :: gdopen
ライブラリでは、nm $prefix/lib/libhdfeos.a | grep gdopenは私に与えます:
00000000000120c0 T gdopen
-fno-underscoringでコンパイルすると、別のエラーが発生します。
gfortran -fno-underscoring -I$prefix/include -L$prefix/lib -Wl,-rpath -Wl,$prefix/lib -lhdfeos -lGctp -lmfhdf -ldf -lz -lsz -ljpeg tst.f90
エラーは次のとおりです。
undefined reference to `gdopen'
また、gfortran はライブラリを見つけます。エラーはアンダースコアに関連していますか? 他に何を試すことができますか?私は Fedora と gfortran バージョン 4.7.2 で作業しています。