Уважаемые эксперты stackoverflow,
Я хочу создать (с FORTRAN) общий объектный файл, скажем, myso.so.В этом .so у меня есть один файл модуля, modso.f и один «файл подпрограммы», subso.f.
У меня также есть статически связанный объект (снова в FORTRAN), скажем, mya.aс 3 файлами подпрограмм и 2 файлами модулей, moda1.f и moda2.f.
При связывании myso.so я включаю mya.a и, конечно, modso.o, subso.o,В modso.f и subso.f у меня есть оператор USE для использования модулей moda1.f и moda2.f, которые находятся в mya.a.
В чем моя проблема: Когда я открываюсь (во время выполненияосновной программы) библиотека myso.so (с помощью команды dlopen (myso.so, RTLD_LAZY)), я получаю эту ошибку, возвращающуюся из dlerror (): myso.so: неопределенный символ: moda1_
Другими словами, кажется, что библиотека .so не видит модули в библиотеке .a.На этапе компиляции и компоновки я не получил никаких ошибок / предупреждений.
Я использую компилятор pgi 10 fortran 90 под Ubundu.Приведенный выше пример отлично работает в Windows (где .so - это .dll, а .a - это .lib)
Спасибо заранее.