Makefile格式 123456#version 1# 目标文件:依赖文件 # 编译器 -o 目标 依赖test: main.cpp complex.cpp g++ -o test main.cpp complex.cpp 123456789101112131415# version 2,使用变量表示# 设置变量CXX = g++TARGET = testOBJ = main.o complex.o# 编译链接的过程规则$(TARGET) : $(OBJ) $(CXX) -o $(TARGET) $(OBJ)# 对于OBJ下的每个文件分别编译main.o: main.cpp $(CXX) -c main.cpp complex.o: complex.cpp $(CXX) -c complex.cpp 12345678910111213141516171819# version 3CXX = g++ # 编译器TARGET = test # 目标OBJ = main.o complex.o # 依赖CXXFLAGS = -c -Wall # 编译选项,显示所有的warning# $@表示Target(目标),而@^表示OBJ (依赖)$(TARGET): $(OBJ) $(CXX) -o $@ $^ # 表示对所有的.o文件满足的统一规则,$<表示依赖的第一个文件%.o: %.cpp $(CXX) $(CXXFLAGS) $< -o $@# clean命令,强制删除所有的.o文件,和TARGET文件.PHONY: clean # 表示防止同名文件cleanclean: rm -f *.o $(TARGET) 1234567891011121314151617# version 4CXX = g++TARGET = testSRC = $(wildcard *.cpp) # 所有当前目录下的.cpp文件OBJ = $(patsubst %.cpp,%.o,$(SRC)) # 路径替换,把SRC里的.cpp替换成.oCXXFLAGS = -c -Wall$(TARGET): $(OBJ) $(CXX) -o $@ $^%.o: %.cpp $(CXX) $(CXXFLAGS) $< -o $@.PHONY: cleanclean: rm -f *.o $(TARGET) CMake格式 文件名CMakeLists.txt,最简格式: 12345678# cmake的最低需求版本cmake_minimum_required(VERSION 3.10)# 项目名project(test)# 生成可执行文件 目标 依赖...add_executable(test main.cpp complex.cpp)