Как получить мульти исполняемый make-файл, который не связан - PullRequest
0 голосов
/ 07 июня 2019

Я просто изменяю свой make-файл, чтобы скомпилировать два исполняемых файла с общим объектным файлом, который он работает, но я могу выяснить, почему он перезапускает?

NAME2 = checker

SRC_PATH1       :=  src/push_swap
SRC_PATH2       :=  src/checker
OBJ_PATH        :=  obj
INC_PATH        :=  include
LIB_PATH        :=  libft

SRC_NAME1       :=  sort_pile.c \
                    sort_work.c \

SRC_NAME2       :=  parse.c \
                    free.c \
                    pile_list.c \
                    debug.c \
                    swap.c \
                    push.c \
                    rotate.c \
                    reverse_rotate.c \
                    move_gestion.c \


INC_NAME        :=  push_swap.h
LIB             :=  $(LIB_PATH)/libft.a
LIB_LINK        :=  -L $(LIB_PATH) -lft
OBJ1            :=  $(addprefix $(OBJ_PATH)/,$(SRC_NAME1:.c=.o))
OBJ2            :=  $(addprefix $(OBJ_PATH)/,$(SRC_NAME2:.c=.o))
INCS            :=  -I $(LIB_PATH)/$(INC_DIR) -I $(INC_DIR)
CC              :=  gcc
CFLAGS          :=  -Wall -Wextra -Werror

all:  $(LIB) $(NAME1) $(NAME2)

$(LIB):
    make -C $(LIB_PATH)

$(NAME1): $(OBJ1) $(OBJ2) obj/push_swap.o
    $(CC) $(CFLAGS) obj/push_swap.o $(OBJ1) $(OBJ2) $(LIB) -o $@

$(NAME2): $(OBJ2) obj/checker.o
    $(CC) $(CFLAGS) obj/checker.o $(OBJ2) $(LIB) -o $@

$(OBJ_PATH)/%.o: $(SRC_PATH1)/%.c $(INC_PATH)/* obj
    $(CC) $(CFLAGS) -o $@ -c $< -I $(INC_PATH)/

$(OBJ_PATH)/%.o: $(SRC_PATH2)/%.c $(INC_PATH)/* obj
    $(CC) $(CFLAGS) -o $@ -c $< -I $(INC_PATH)/

obj:
    mkdir -p obj

clean:
    rm -rf $(OBJ) $(LIB_PATH)/*.o
    rm -rf obj

fclean: clean
    rm -f $(NAME2)
    make -C $(LIB_PATH) fclean

re: fclean all

.PHONY: all fclean clean re norme

Я уже пытался создать правило для основных файлов itch, но у меня была ошибкадля общих объектных файлов.Мне интересно, если бы я был вынужден заставить отдельный файл объекта зуд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...