c - Makefile...创建一个静态库

标签 c 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' 引用自身(最终)。停止。 我怎样才能让它发挥作用?

最佳答案

问题是在分配给您的 SRCS 变量的值末尾有一个杂散行继续转义。

make 在结束时看到这一行

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

并认为它也需要在 SRCS 的值中包含下一行。

只有下一行是 OBJ = $(SRCS:.c=.o),它引用了 $(SRCS) 并创建了 make 提示的循环。

要么删除杂散的反斜杠,要么在这两行之间添加一个空行。

关于c - Makefile...创建一个静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500558/

相关文章:

将字符数组转换为整数数组

c++ - 在 OS X 上编译 lsd_slam 会抛出链接错误 ld : library not found for -lGL

c++ - Linux MAKEFILE 访问环境变量

c - 艰难调试神秘的git+ssh+proxy失败 "bash: No such file or directory"

c - 为什么这个程序中的for循环是不确定的?

c - 程序末尾的段错误

c - signal_connect 函数中的指针工作不正常

c - Makefile:一个命令输入多个文件

c++ - 从 Linux Makefile 打开终端

c - 这个make文件有什么问题?