我想避免C++文件头文件声明中的相对路径。所以,我通过一个在线示例使用了makefile。但我得到错误。请检查代码,并帮助我解决这个MakeFile:不同目录中的头文件 - 错误
COMPILER = g++
IDIR = ./include
CXXFLAGS += -I$(IDIR)
CFLAGS += -I$(IDIR)
EXEC = hello
OBJECTS = main.o factorial.o hello.o
all: $(EXEC)
(---- I had also used CFLAGS instead of CXXFLAGS below but the same result###)
$(EXEC): $(OBJECTS)
$(COMPILER) $(CXXFLAGS) $(OBJECTS) -o $(EXEC)
main.o: main.cpp ./include/functions.h
$(COMPILER) $(CXXFLAGS) -c main.cpp
factorial.o: main.cpp ./include/functions.h
$(COMPILER) $(CXXFLAGS) -c factorial.cpp
hello.o: main.cpp ./include/functions.h
$(COMPILER) $(CXXFLAGS) -c hello.cpp
错误:
化妆:*没有规则,使目标“包括main.o‘创造“所规定 ’/ functions.h 。关闭。
目录结构
- main.cpp
- factorial.cpp
- hello.cpp
- MakeFile.mk
- +include (dir)
----->functions.h
main.cpp中包含----包括 “functions.h” ----在日e标题声明
这是一个纯粹的'make'错误消息。该错误与任何.cpp或.h文件的内容无关。这个错误实际上只能来自Makefile的内容,以及它中指定的文件的存在与否。因此,'make'声明它找不到'include/functions.h'文件。仔细检查它实际上是在这里,正确的名称和匹配的情况。 –
谢谢你的回复。但是我使用的是与帖子中提到的相同的目录结构,并且我检查了拼写,匹配大小写,但所有内容似乎都是在帖子中显示的。我仍然获得相同的错误 – sunny
只是为了检查,是“+ include”目录名称的“+”部分吗? –