У меня есть устаревший код, написанный на Fortran 77. Я пытаюсь создать его с помощью Gfortran. Но мне кажется, что происходит сбой на этапе, когда я включаю библиотеки в сборку. Десятки исходных файлов * .f хорошо компилируются, но когда они связаны, я получаю кучу ошибок «неопределенных ссылок», связанных с подпрограммами и функциями, которые определены в моих библиотеках. Сначала я уже запустил make-файл для библиотек, поэтому все нужные мне переменные должны быть экспортированы. Я играю с опцией "-L", но не могу заставить ее работать как нужно.
Во-первых, вот мой синтаксис строки ссылки в моем make-файле:
29 $(PROGRAM): $(SRCS) $(LIBS)
30 $(FC) $(FLFLAGS) -o $@ $+ -L$(DIRLIB)
PROGRAM - это имя программы, SRCS - это все скомпилированные исходные файлы, LIBS настроен на два разных файла - файл архива (file.a) и файл file.o.
FC - gfortran, у меня нет конкретных флагов связывания для FLFLAGS на данный момент, и DIRLIB является основным каталогом библиотек.
Дело в том, что мои файлы * .o, полученные в результате создания моих библиотек, находятся не в главном каталоге, DIRLIB. DIRLIB содержит несколько каталогов, все со своими собственными * .o файлами, которые нужны моему коду.
Я попытался добавить каждый отдельный каталог после опции -L (например, DIRLIB / DIR1 / *. O DIRLIB / DIR2 / *. O DIRLIB / DIR3 / *. O), но в итоге я получаю ошибки, из-за которых некоторые подпрограммы умножаются определены.
Весь этот бизнес пользовательских библиотек и архивных файлов просто смущает меня, и я довольно новичок в создании make-файлов, поэтому я просто делаю снимок в темноте, чтобы кто-то мог помочь мне избавиться от некоторых свет на это.