0

我试图调整我的标准 makefile 以包含 vpath。我让它按我的意愿工作,但它现在一直在重新链接。有人知道我在做什么错吗?这与我对 vpath 的使用有关吗?

我的makefile的相关部分:

NAME        :=  minishell

# Directories
INCL_DIR    :=  includes
SRCS_DIR    :=  srcs
OBJDIR      :=  objs
vpath       %.c $(SRCS_DIR)
vpath       %.c $(SRCS_DIR)/executor

# Config
CC          :=  gcc
FLAGS       :=  -Wall -Wextra

# Srcs
SRCS        :=  main.c \
                get_cmd.c \
                exit_error.c \
                ft_strlen.c
OBJS        :=  $(SRCS:.c=.o)


all:        $(NAME)

$(NAME):    $(OBJS)
    $(CC) $(addprefix $(OBJDIR)/, $(OBJS)) $(FLAGS) -o $(NAME)

%.o: %.c
    @mkdir -p $(OBJDIR)
    $(CC) $(FLAGS) -c $< -o $(addprefix $(OBJDIR)/, $@) -I$(INCL_DIR)

项目文件夹结构(简化):

Minishell/
    includes/
    srcs/
        executor/
        main.c
    Makefile

非常感谢!

4

0 回答 0