mksmvnv
@mksmvnv

Почему появляется ошибка make: *** [Makefile:15: leak] Ошибка 1 при выполнении Makefile на C?

У меня есть два проекта в которых обработка происходит по сути идентичным мейкфайлом, отличаются лишь названия исполняемых файлов. Проекты находятся с разных директориях и никак не соприкасаются. Вот содержимое мейка:

CC    := gcc
NAME    := project_1
SRC    := $(NAME).c
HEADER    := $(NAME).h

all: $(NAME) test leak check style

project_1: $(SRC) $(HEADER)
	$(CC) $(CFLAGS) $(SRC) -o $(NAME)	

test: $(NAME)
	python3 ./test.py
leak: $(NAME)
	valgrind --tool=memcheck --leak-check=yes ./$(NAME)
check: $(NAME)
	cppcheck --enable=all --suppress=missingIncludeSystem *.c *.h ./../common/*.*
style: $(NAME)
	clang-format -style=Google -n *.c *.h
clean:
	rm -rf *.o *.a
	rm -f $(NAME) *.o

rebuild: clean $(NAME)


Почему в проекте 1 ошибок не возникает и make all обрабатывает все таргеты, а при запуске проекта 2 с идентичным содержимым мейкфайла, появляется ошибка:

make: *** [Makefile:15: leak] Ошибка 1

В итоге после таргета leak выполнение мейка прирывается и оставшиеся таргеты cppcheck и style не обрабатываются.

*Уже проверил несколько раз мейкфайлы копипастом и они идентичны, отличаются только названия исполняемых файлов. Пишет в ошибке про 15 строку, но там все верно (как и сказал идентично с первым проектом).
  • Вопрос задан
  • 461 просмотр
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
make: *** [Makefile:15: leak] Ошибка 1

В linux это код ошибки "нет доступа". Начни с проверки что $(NAME) доступен для чтения и выполнения.
Кроме того, для полноты картины стоит показывать полный лог выполнения команды make, а не только последнее сообщение об ошибке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы