Во-первых, мое дерево файлов выглядит следующим образом.
cub3d
|---- includes
| |---- cub3d.h
|---- libft
| |---- Makefile
| |---- libft.a
| |---- includes
| | |---- libft.h
| |---- obj
| | |---- objectfile for libft library
| |---- srcs
| | |---- sourcefile for libft library
|---- minilibx
| |---- all of file for minilibx libarary(.a, .h, .c ...etc...)
|---- obj
| |---- main.o
|---- srcs
| |---- main.c
|---- Makefile
И мой make-файл выглядит так.
.PHONY: all clean fclean re
NAME = test
CC = gcc
CFLAGS = -Wall -Wextra -Werror -I $(INC_DIR)\
I$(LIBFT_INC) -I $(MLX_INC)
SRC_DIR = ./srcs/
SRCS = $(addprefix $(SRC_DIR), $(SRC))
SRC = main.c
OBJ_DIR = ./obj/
OBJS = $(addprefix $(OBJ_DIR), $(OBJ))
OBJ = $(SRC:.c=.o)
INC_DIR = includes
LIBFT_DIR = libft
LIBFT_INC = libft/includes
LIBFT_LIB = -L $(LIBFT_DIR) -lft
MLX_DIR = minilibx
MLX_INC = $(MLX_DIR)
MLX_LIB = -L $(MLX_DIR) -lmlx -lm -framework OpenGL\
-framework AppKit
all: libft_make minilibx_make $(NAME)
$(NAME): $(OBJ_DIR) $(OBJS)
@$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBFT_LIB) $(MLX_LIB)
$(OBJS): $(SRCS)
@$(CC) $(CFLAGS) -o $@ -c $(SRCS) $(LIBFT_LIB) $(MLX_LIB)
$(OBJ_DIR):
@mkdir -p $(OBJ_DIR)
libft_make:
@make -C libft
minilibx_make:
@make -C minilibx
clean:
@rm -f $(OBJS)
@rm -rf $(OBJ_DIR)
@make -C libft/ clean
@echo "$(_RED)'"libft/$(OBJ_DIR)"' has been deleted. $(_END)"
@echo "$(_RED)'"$(OBJ_DIR)"' has been deleted. $(_END)"
fclean: clean
@rm -f $(NAME)
@make -C libft/ fclean
@echo "$(_RED)'"libft.a"' has been deleted. $(_END)"
@echo "$(_RED)'"$(NAME)"' has been deleted. $(_END)"
rma: clean fclean
re: fclean all
make -n
make -C libft
make -C minilibx
gcc -Wall -Wextra -Werror -I includes -I libft/includes -I minilibx -o obj/main.o -c srcs/main.c -L ./libft -lft -L minilibx -mlx -lm -framework OpenGL -framework Appkit
gcc -Wall -Wextra -Werror -I includes -I libft/includes -I minilibx -o test ./obj/main.o -L libft -lft -L minilibx -lmlx -lm -framework OpenGL -framework Appkit
An произошла ошибка.
лязг: ошибка: -lft: ввод 'linker' не используется [-Werror, -Wunused-аргумент командной строки]
clang: error: -lmlx : ввод 'linker' не используется [-Werror, -Wunused-аргумент командной строки]
clang: ошибка: -lm: ввод 'linker' не используется [-Werror, -Wunused-аргумент командной строки]
clang: ошибка: -framework OpenGl: ввод 'linker' не используется [-Werror, -Wunused-аргумент командной строки]
clang: error: -framework AppKit: ввод 'linker' unused [-Werror, -Wunused-command-line-аргумент]
clang, кажется, говорит, что мои флаги не используются. Что я сделал не так?