私のMakefileが再リンクしていて、なぜそれが見つからないのですか?メイクファイルを再リンクするのを避ける方法
mallocが$(NAME)を実行する必要があると思われる理由はわかりません。 $(SRC:.c = .o)マクロは.oファイルなどのタイムスタンプを変更していますか?
CC = gcc
NAME = app
#
CFLAGS = -Wall -Werror -Wextra -pedantic -pedantic-errors
INCLUDES = -I ./includes
#
DIRSRC = srcs/
DIROBJ = objs/
SRC += main.c
SRC += malloc.c
OBJ = $(SRC:.c=.o)
DIROBJS = $(addprefix $(DIROBJ), $(OBJ))
#
LIBS_PATH = ./libs
LIBFT_PATH = $(LIBS_PATH)/libft
LIBFT_INCLUDES = -I $(LIBFT_PATH)
LIBFT = -L $(LIBFT_PATH) -lft
#
COMPILE = $(CC) $(CFLAGS) $(INCLUDES)
#
all: $(NAME)
$(NAME): configure libs $(DIROBJS)
$(COMPILE) $(LIBFT) $(DIROBJS) -o $(NAME)
$(DIROBJ)%.o: $(DIRSRC)%.c
@echo Compiling: $<
$(COMPILE) $(LIBS_INCLUDES) -c $< -o [email protected]
clean:
@rm -rf $(DIROBJ)
fclean: clean
@rm -rf $(NAME)
re: fclean all
#
configure:
@mkdir -p $(DIROBJ)
#
libs:
@$(MAKE) -C $(LIBS)
.PHONY: all configure clean fclean re libs cleanlibs fcleanlibs relibs
このメイクファイルは、$(OBJDIRS)ターゲットが実行される前にconfigureが実行される保証がないため、 '-j'で失敗することがあります。 – blackghost