简单的Makefile编写学了会点,不学又忘了。这里参考了多位大佬的Makefile教程,自己给自己写的示例,如有错误请告知一下我。
#version 1//最简单,没难度 hello : main.cpp one.cpp two.cpp g++ -o hello main.cpp one.cpp two.cpp #version 2//将编译和链接分开,简化编译 CXX=g++ TARGET=hello OBJ=main.o one.o two.o $(TARGET):$(OBJ) $(CXX) -o $(TARGET) $(OBJ) main.o:main.cpp $(CXX) -c main.cpp one.o:one.cpp $(CXX) -c one.cpp two.o:two.cpp $(CXX) -c two.cpp #version 3 简化编译命令 CXX=g++ TARGET=hello OBJ=main.o one.o two.o CXXFLAGS=-c -Wall $(TARGET):$(OBJ) $(CXX) -o $@ $^ %.o:%.cpp $(CXX) $(CXXFLAGS) $< -o $@ #-o是制定名称的意思 .PHONY: clean clean : rm -f *.o $(TARGET) #version 4 CXX=g++ TARGET=hello SRC=$(wildcard *.cpp) #找到当前目录下所有的cpp OBJ=$(patsubst %.cpp,%.o,$(SRC)) #将.cpp替换为.o CXXFLAGS=-c -Wall #^全部依赖;<第一个依赖 $(TARGET):$(OBJ) $(CXX) -o $@ $^ %.o:%.cpp $(CXX) $(CXXFLAGS) $< -o $@ .PHONY:clean clean: rm -f *.o $(TARGET)