makefile将文件中的.d .o文件移动到另一个目录
时间: 2024-05-15 15:01:31 浏览: 112
移动文件到指定的目录
可以使用以下的Makefile规则将所有的.d和.o文件移动到另一个目录:
```
# 源文件目录和目标文件目录
SRC_DIR := src
OBJ_DIR := obj
# C++编译器和选项
CXX := g++
CXXFLAGS := -Wall -Wextra -pedantic -std=c++11
# 目标文件和可执行文件
TARGET := myprogram
OBJ := $(addprefix $(OBJ_DIR)/,$(notdir $(CPPFILES:.cpp=.o)))
DEP := $(OBJ:.o=.d)
# 默认目标
all: $(TARGET)
# 可执行文件的编译规则
$(TARGET): $(OBJ)
$(CXX) $(CXXFLAGS) -o $@ $^
# 依赖关系的规则
-include $(DEP)
# .o文件的编译规则
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
# .d文件的规则
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.cpp
@mkdir -p $(OBJ_DIR)
$(CXX) $(CXXFLAGS) -MM -MT '$(OBJ_DIR)/$(notdir $(<:.cpp=.o))' $< -MF $@
# 将所有的.d和.o文件移动到另一个目录
move:
mv $(OBJ_DIR)/*.o $(ANOTHER_DIR)/
mv $(OBJ_DIR)/*.d $(ANOTHER_DIR)/
# 清除目标文件和可执行文件
clean:
rm -f $(OBJ) $(DEP) $(TARGET)
```
在Makefile中添加`move`规则,并将目标文件和依赖关系文件的路径修改为`$(ANOTHER_DIR)`。执行`make move`即可将所有的.d和.o文件移动到`$(ANOTHER_DIR)`目录中。
阅读全文