почему мой Makefile не делает * .mod при использовании Makefile - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь создать простой Makefile для сборки моей программы.

Мой Makefile файл выглядит следующим образом:

main.f - основной исходный код, а test1.f - модуль.

default: test.out

test.out : main.o test1.o
    gfortran main.o test1.o -o test.out

test1.o: test1.f
    gfortran -c test1.f

main.o: main.f
    gfortran -c main.f


clean :
    rm -f ./*.out
    rm -f ./*.o
    rm -f ./*.mod

при вводе команды make в терминале выдает ошибку, что

Fatal Error: Cannot open module file 'test1.mod' for reading at (1): No such file or directory

(1) показывает, где произошла ошибка. Он находится в строке основного исходного файла, где я определяю использовать модуль test1, т.е. use test1

Если я командую gfortran -c test1.f, то команда make создает исполняемый файл без каких-либо проблем.

У меня такой вопрос, что даже я написал строку для создания целевого файла в Makefile для модуля, почему он не работает?

1 Ответ

0 голосов
/ 05 апреля 2020

Ваши зависимости Makefile неверны. Вам нужно скомпилировать test1.f90 до main.f90. Так что измените test.out : main.o test1.o на test.out: test1.o main.o.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...