2015-11-03 98 views
0

請有人可以幫我用這個makefile ...這有什麼問題?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'引用自己(最終)。停止。 我該如何使它工作?

回答

2

問題是,在分配給SRCS變量的值的末尾有一個雜散行延續轉義。

化妝看到這條線在然後結束

 ft_memalloc.c ft_putendl_fd.c ft_strdup.c  ft_strncpy.c \ 

,並認爲它需要包括在SRCS值下一行了。

只有下一行是OBJ = $(SRCS:.c=.o),它引用$(SRCS)並創建make所抱怨的循環。

要麼刪除那個流浪的反斜槓,要麼在這兩條線之間添加一條空行。