我试图调整我的标准 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
非常感谢!