Makefile

CXX = g++ # 编译器

TARGET = out # 最终输出的文件名

# 如果有新增源文件,需手动添加同名的中间文件
OBJ = main.o src1.o src2.o # 要生成的中间文件(汇编文件),还未链接

# 也可以使用下面这种方法,这样我们就不要手动添加新增的源文件了
# SRC = $(wildcard *.cpp) # 表示所有cpp文件,wildcard是使用通配符的意思
# OBJ = $(patsubst %.cpp, %.o, $(SRC)) # 将所有源文件替换成同名的中间文件

CXXFLAGS = -Wall # 编译选项,这里表示输出警告信息

$(TARGET): $(OBJ) # 冒号前是目标,冒号后是依赖
	$(CXX) -o $@ $^ # $@代表冒号前的文件,$^代表冒号后的所有文件

%.o: %.cpp
	$(CXX) -c $(CXXFLAGS) $< -o $@ # $<代表冒号后的第一个文件

.PHONY: clean # 表示伪目标,防止我们的文件名是clean,从而不执行以下命令
clean:
	rm -f *.o $(TARGET) # 删除所有生成的文件

# make 执行生成target文件
# make clean 执行目标clean,即清楚所有生成的文件

CMakeLists.txt

cmake_minimum_required(VERSION 3.10) # 要求的cmake的最小版本

project(MyProject) # 项目名称

add_executable(out main.c src1.c src2.c) # 生成的文件为out,然后后面是需要的源文件
 posted on 2024-09-07 17:18  Dylaris  阅读(57)  评论(0)    收藏  举报