вместо
=======

я есть исходный код FORTRAN, состоящий из множества различных файлов .F и .h. Мне нужно построить исполняемый файл из него, но у меня есть некоторые проблемы. Makefile, который я создал до сих пор (который может иметь ошибки, так как я новичок в этом):

Однако когда я пытаюсь создать программу, я получаю множество неопределенных ошибок в ссылках. Я имею в виду, что каждый вызов функции и подпрограммы в самом первом скомпилированном файле .F возвращает неопределенную ошибку ссылки. Я думал, что это потому, что gfortran пытался связать файлы, а не просто компилировать их, а затем связывать в конце, но я думал, что опция -c должна была предотвратить это.

ОБНОВИТЬ:

Как отметили комментаторы, я перепутал флаги компиляции и ссылки. Кроме того, вы не должны компилировать * .h файлы. Вот последний исправленный make-файл:

Теперь, когда я запускаю make, он компилирует каждый файл * .F в коде, но на этапе компоновки происходит сбой. Я получаю кучу неопределенных ошибок ссылок в самом первом файле * .F. Компилятор, кажется, просматривает каждый файл * .F отдельно на этапе компоновки, что, я не уверен, является правильным. Тогда я получаю ошибку:

Однако, если я наберу команду:

Исполняемый файл будет собран, поэтому кажется, что я сделал что-то не так в make-файле для этапа компоновки.

ОБНОВЛЕНИЕ: 5/9/2011

Сверре указал на последнюю проблему с моим make-файлом. В моей первой цели, которая собирает программу, я использую команду ярлыка только для первой зависимости ($ <), но мне нужно включить все зависимости (то есть все файлы  .o), используя ярлык ($ ^). Последний рабочий файл сборки выглядит следующим образом:

Вы используете GNU make? Если так,

может быть виновником`$< это имяпервый обязательным условием, но вы хотите, чтобы все.o файлы. Попробуйте использовать$^` вместо.