make
코드의 명령이 다음과 같은 경우 오류가 발생하는 이유는 무엇입니까 make: *** No targets. Stop.
?
NAME := program
FLAG := -std=c11 -Wall -Wextra -Werror -Wpedantic
all: $(NAME)
$(NAME): *.c
clang $(FLAG) -o $(NAME) *.c -lm
clean:
rm -rf $(NAME)
reinstall: clean all
답변1
이 오류의 가장 큰 원인은 null Makefile
(또는 makefile
)이 있다는 것입니다.
touch makefile
make
make: *** No targets. Stop.
위와 같이 사용하는 경우에도 이 오류를 유발하는 null 값이 Makefile
있을 수 있습니다 . makefile
사용하지 않는 파일을 삭제하세요.
또한 집중선은 공백이 아닌 Makefile
들여쓰기되어야 합니다 .tab
$(NAME): *.c
clang $(FLAG) -o $(NAME) *.c -lm
이것을 잊어버리면 다른 오류가 발생합니다.
무결성 작업 시나리오:
# Nothing in the current directory
ls
make
make: *** No targets specified and no makefile found. Stop.
# Create "Makefile" and list it
printf 'thing:\n\tdate >thing\n' >Makefile
cat Makefile
thing: date >thing
# Run the "Makefile" recipe
make
date >thing
# Create a bogus empty "makefile"
touch makefile
make
make: *** No targets. Stop.