我想避免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」目錄名稱的「+」部分嗎? –