(對不起,我英文不好,我是德國人)GNU使汽車的依賴性取決於目錄
您好程序員,
我使用GNU讓我的C++項目,但我有一些麻煩的自動依賴關係: 如果我執行「make objects/file.o」,它會告訴我,即使source/file.cpp包含的文件已更改,objects/file.o也已保持最新。 奇怪的是,如果我將DEP_DIR和OBJ_DIR更改爲「。」一切正常。 這裏是我的makefile(不完全):
SRC_DIR := source
DEP_DIR := dependencies
OBJ_DIR := objects
$(shell mkdir -p $(dir EXE_PATH))
-include $(addprefix $(DEP_DIR)/, $(NAMES:=.d))
$(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp
$(CXX) -c $(CFLAGS) $(SRC_DIR)/$*.cpp -o [email protected]
$(CXX) -MM $(CFLAGS) $^ > $(DEP_DIR)/$*.d
$(EXE_PATH) : $(addprefix $(OBJ_DIR)/, $(NAMES:=.o))
$(CXX) $(LINK_FLAGS) $^ -o $(EXE_PATH)
all : $(EXE_PATH)
run :
$(EXE_PATH)
carun : $(EXE_PATH)
$(EXE_PATH)
clean:
rm -f EXE_PATH
我會感激如果有人可以解釋這個奇怪的問題給我。
它應該是'CXX',而不是'CPP'。 'CPP'是C預處理器,'CXX'是C++編譯器 – igagis
否則,我建議您使用https://github.com/igagis/prorab/blob/master/wiki/TutorialBasicConcepts.md它執行所有這些自動依賴對你而言,你不必擔心。 – igagis