我正在做一个学校项目,我的 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。