У меня проблема с подключением библиотеки HDF-EOS к программе Fortran90. Я скомпилировал библиотеку из исходного кода в каталог, указанный в префиксе $. Моя простая команда компиляции:
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 используется через ключевое слово external, например
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.