Господа, Прошу помочь: нужно создать make файл, исходники у которого хранятся в разных каталогах. Для проверки работы файла сделал три каталога и поместил туда по одному исходнику. Почему-то при запуске make в командной строке получаю это: gfortran: fatal error: no input files; unwilling to write output files
compilation terminated. makefile:2: ошибка выполнения рецепта для цели «program» make: *** [program] Ошибка 1
Текст make-файла :
program: $(patsubst %.f95,%.o,$(wildcard *.f95))
gfortran -o program $(patsubst %.f95,%.o,$(wildcard *.f95))
vpath %.f95 ./dir1
vpath %.f95 ./dir2
vpath %.f95 ./dir3
%.o: %.95
gfortran -c $<
Помогите, пожалуйста, исправить ситуацию и по возможности объясните причины. Заранее спасибо
P.S. Список объектных файлов обязательно должен строится автоматически
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Перестаньте пользоваться переменой vpath — это дурной тон особенно с точки зрения рекурсии. А проблема собственно в том, что компилятор не может найти ваш файл по его базовому имени, нужен полный или относительный путь от каталога $(CURDIR).
Попробуйте составить списки
SRCS = …
OBJS = …
где без помощи vpath задать имена исходников. можно с пом wildcard но с указанием путей к файлам.