我的生成文件找不到我的头目录

My MakeFile can't find my header directory

本文关键字:我的 文件 找不到      更新时间:2023-10-16

这是我的Makefile:

NAME    = pong
SRCS    = src/main.cpp
OBJS    = $(SRCS:.cpp=.o)
CFLAGS  += -lsfml-graphics -lsfml-window -lsfml-system -I include/
all: $(NAME)
$(NAME): $(OBJS)
    g++ -o $(NAME) $(SRCS) $(CFLAGS)
clean:
    rm -f $(OBJS)
fclean: clean
    rm -f $(NAME)
re: fclean all
.PHONY: all clean fclean re

当我执行make时,它告诉我包含在main.ccp中的头不存在。

#include "prototypes.hpp"

这是我的项目组织:

.
├── a.out
├── include
│   └── prototypes.hpp
├── Makefile
├── src
│   └── main.cpp
└── test

最奇怪的是,当我做时,这个工作

g++ -o test src/main.cpp  -lsfml-graphics -lsfml-window -lsfml-system  -I include/

知道为什么吗?

使用您的规则

$(NAME): $(OBJS)

$(OBJS)的依赖将首先运行make的隐式℅.o : ℅.cpp规则,该规则反过来使用$CXXFLAGS,因此看不到-I选项。

在编写规则时,只需省略对$(OBJS)的依赖。