c++ - 我的 MakeFile 找不到我的头目录

标签 c++ 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 中的 header 不存在。

#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) 的依赖。

关于c++ - 我的 MakeFile 找不到我的头目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33814360/

相关文章:

c++ - 如何在 CMake 中使用 CCache?

c++ - 如何在 C++ 中调用另一个 mex (MATLAB) 对象文件中的一个 cuda 对象文件的函数?

c++ - 为每个实例重新定义方法

c++ - 如何导入 2 个不同的时区以检查两者是否都是星期一?

c++ - 简单 C++ OpenGL 程序的 Makefile

makefile - make & gmake 兼容 if else 语句

linux - OpenSSL 以静态方式链接 libcrypto.a

makefile - 如何找出 makefile 链中的哪个 makefile 正在覆盖变量?

javascript - 将文件从React.JS前端移动到C++后端

bash - 在 Makefile 中运行时,读取提示无法正确打印