Makefile 重新链接

问题描述 投票:0回答:0

我正在做一个学校项目,我的 makefile 总是重新链接,我不明白为什么。 我需要用库编译 objs(libft 将有一个 libft.a 文件,所以我需要使用其他 makefile 创建库)。还有什么是学习 makefile 的最佳资源?

SRCS = src/pipex.c \
       src/utils.c \

OBJS = $(SRCS:.c=.o)

NAME = pipex
LIBFT       = libft.a
LIBFT_DIR := ./libft
LIBFT_LIB := $(LIBFT_DIR)/$(LIBFT)
CC = cc
FLAGS = -Wall -Wextra -Werror
LIBC = ar rc
RM = rm -f

all: $(NAME)

$(NAME): $(OBJS) $(LIBFT)
    $(CC) $(FLAGS) $(OBJS) $(LIBFT_LIB) -o $(NAME)

debug: $(OBJS) $(LIBFT)
    $(CC) $(FLAGS) -g $(SRCS) $(LIBFT_LIB) -o $(NAME)
    
$(LIBFT):
    @cd $(LIBFT_DIR) && $(MAKE) --silent

clean:
    cd $(LIBFT_DIR) && $(MAKE) clean
    $(RM) $(OBJS) $(BNS_OBJS)

fclean: clean
    cd $(LIBFT_DIR) && $(MAKE) fclean
    $(RM) $(NAME)

re: fclean all

.PHONY: $(LIBFT)

我尝试将 libft 命令更改为静默,因此不会向屏幕输出,并将 OBJS 更改为 $(NAME) 命令中的 SRCS。

makefile gnu-make multiple-makefiles
© www.soinside.com 2019 - 2024. All rights reserved.