Я работаю над библиотекой Fortran, которая содержит множество различных функций. Для того, чтобы развивать и поддерживать его более легко, я разделил эту библиотеку на несколько модулей (например, part1.f90
, part2.f90
, part3.f90
) и основной модуль mylib.f90
, используя все эти отдельные модули:Компиляция и связывание модулей с использованием других модулей
module mylib
use part1
use part2
use part3
implicit none
end module mylib
Идея затем использовать этот основной модуль в моих программах с use mylib
. Однако у меня возникают проблемы с компиляцией и связыванием этих модулей.
Все модули содержатся и скомпилированы в каталоге /mylib/src/
, что также содержит соответствующие файлы *.o
и *.mod
. Когда я компилирую мою программу в другой каталог с помощью:
gfortran -I/mylib/src myprog.f90 -o myprog
Я бы ожидать, что компилятор, чтобы найти необходимые модули в указанном каталоге. Но, к сожалению, я получаю сообщение об ошибке, что есть неопределенные ссылки на функции, которые фактически содержатся в подмодулях.
Что я здесь делаю неправильно?
Благодарим за помощь!
Благодарим вас за ответ! Однако я пытался обойти необходимость упоминания всех объектов при связывании моей программы с библиотекой. – remek