Я пытаюсь отлаживать следующий код:ошибки при использовании Makefile, целей и%
TESTS=$(shell cat yoursourcefile)
all: $(TESTS)
%: compile_design
compile [email protected]_tb.vhd >> log_file.log
simulate [email protected]
Я получил эту ошибку:
makefile_tb.vhd >> log_file.log
, как будто Makefile является мишень
этого ошибка исчезает, когда я добавляю символ или больше до%:
T%: compile_design
compile [email protected]_tb.vhd >> log_file.log
simulate [email protected]
Это работает, но подразумевает, что все мои цели начинаются с «Т», что не всегда так. Мои вопросы: Что такое функция% здесь? Как избавиться от этой ошибки?
Как было предложено, я добавил
makefile: ; [email protected]:
в конце, так что у меня сейчас:
TESTS=$(shell cat yoursourcefile)
all: $(TESTS)
%: compile_design
compile [email protected]_tb.vhd >> log_file.log
simulate [email protected]
makefile: ; [email protected]:
тогда, когда я делаю:
make all
я [все] Error2 all_tb.vhd >> log_file.log
, но all_tb.vhd не существует!
Теперь у меня: 'makefile:; $ @: ТЕСТЫ = $ (скорлупа кошка yoursourcefile) всего: $ (ИСПЫТАНИЯ) %: compile_design компиляции [email protected]_tb.vhd >> log_file.log симулировать $ @ ' и я получил: ' all_tb.vhd >> log_file.log' , но all_tb.vhd не существует ** это переименование цели? ** – user2725571
Я не могу читать make-файлы в комментариях, потому что все новые строки потеряны. Однако по умолчанию (если вы не указали иначе в командной строке) make создает только первую цель в make-файле (и все ее предпосылки, конечно). Если вы добавили правило для 'makefile' в качестве первого, то это единственное, что сделает make, если вы не запустите' make all'. Поместите правило make-файла в конец make-файла, а не в начало. – MadScientist