我的MakeFile找不到我的头目录

时间:2015-11-19 21:06:20

标签: c++ makefile

这是我的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/

知道为什么吗?

1 个答案:

答案 0 :(得分:1)

使用您的规则

$(NAME): $(OBJS)

$(OBJS)的依赖关系将首先运行make隐式℅.o : ℅.cpp规则,而后者又使用$CXXFLAGS,因此看不到-I选项

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