编译错误 - makefile - 包含头文件

时间:2016-09-22 13:45:31

标签: c makefile header include

我有一个似乎无法解决的问题。我正在尝试使用-I标志将我的包含添加到编译器将查看的列表中。它不是直接查看包含所有标准库的/ usr / include目录,而是首先在我的include目录中查找头文件。但它似乎没有找到文件,因为我编译时会出现这种错误的长列表:

src/termcaps/termcapbis.c:13:10: fatal error: 'termcaps.h' file not found #include <termcaps.h>

(这是多个错误中的一个例子,都是同样的事情。)

所以我想知道我的Makefile是否有问题,或者我是否需要为编译器做其他事情以了解我的头文件的位置。

这是我的makefile:

NAME = 42sh

SRC_DIR = "src"
SRC_DIRS = $(shell find $(SRC_DIR) -type d -follow -print)
SRC_FILES = $(shell find $(SRC_DIRS) -type f -follow -print | grep      "\.c")

OBJ_DIR = "obj"
OBJ_DIRS = $(SRC_DIRS:$(SRC_DIR)%=$(OBJ_DIR)%)
OBJ_FILES = $(SRC_FILES:$(SRC_DIR)%.c=$(OBJ_DIR)%.o)

FLAGS = -Wall -Wextra -Werror
INCLUDE = -Iinclude -Ilibft/include
LIB = -Llibft -lft -ltermcap

all: $(NAME)

$(NAME): $(OBJ_FILES)
    make -C libft
    gcc $(FLAGS) $^ $(LIB) -o $@

$(OBJ_DIR)%.o: $(SRC_DIR)%.c
    @mkdir -p $(OBJ_DIRS) $(OBJ_DIR)
    gcc $(FLAGS) $(INCLUDE) -o $@ -c $<

clean:
    @rm -rf $(OBJ_DIR)
    @make fclean -C libft

fclean: clean
    @rm -rf $(NAME)
    @make fclean -C libft

re: fclean $(NAME)

.PHONY: all clean fclean re

有什么建议吗?

0 个答案:

没有答案