请有人帮我这个makefile ...这有什么问题?
NAME = libft.a
SRCS = ft_memccpy.c ft_putnbr.c ft_strequ.c ft_strnequ.c \
ft_memchr.c ft_putnbr_fd.c ft_striter.c ft_strnew.c \
ft_memcmp.c ft_putstr.c ft_striteri.c ft_strnstr.c \
ft_atoi.c ft_memcpy.c ft_putstr_fd.c ft_strjoin.c ft_strrchr.c\
ft_bzero.c ft_memdel.c ft_strcat.c ft_strlcat.c ft_strstr.c \
ft_isalnum.c ft_memmove.c ft_strchr.c ft_strlen.c ft_strsub.c \
ft_isalpha.c ft_memset.c ft_strclr.c ft_strmap.c ft_strtrim.c \
ft_isascii.c ft_putchar.c ft_strcmp.c ft_strmapi.c ft_tolower.c \
ft_isdigit.c ft_putchar_fd.c ft_strcpy.c ft_strncat.c ft_toupper.c \
ft_isprint.c ft_putendl.c ft_strdel.c ft_strncmp.c \
ft_memalloc.c ft_putendl_fd.c ft_strdup.c ft_strncpy.c \
OBJ = $(SRCS:.c=.o)
all: $(NAME)
$(NAME):
gcc -c -Wall -Wextra -Werror $(SRCS)
ar rc $(NAME) $(OBJ)
ranlib $(NAME)
clean:
bin/rm -f *.o
fclean: clean
bin/rm -f libft.a
re: fclean all
我仍然得到这个错误:Makefile:14:***递归变量`SRCS'引用自身(最终)。停止。 我怎样才能使它发挥作用?
答案 0 :(得分:2)
问题是在分配给SRCS
变量的值的末尾有一个离线延续转义。
make在此结束时看到这一行
ft_memalloc.c ft_putendl_fd.c ft_strdup.c ft_strncpy.c \
并且认为它还需要在SRCS
的值中包含下一行。
只有下一行OBJ = $(SRCS:.c=.o)
引用$(SRCS)
并创建了一个抱怨的循环。
删除那个杂散反斜杠或在这两行之间添加一个空行。