下面是一个包含生成的C++源文件的Makefile的示例:
# 定义编译器
CC = g++
# 定义编译选项
CFLAGS = -c -Wall
# 定义目标文件
TARGET = myprogram
# 定义源文件
SOURCES = main.cpp utility.cpp
# 生成对象文件
OBJECTS = $(SOURCES:.cpp=.o)
# 默认目标
all: $(TARGET)
# 生成可执行文件
$(TARGET): $(OBJECTS)
$(CC) $(OBJECTS) -o $(TARGET)
# 生成对象文件
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
# 清理生成的文件
clean:
rm -rf $(OBJECTS) $(TARGET)
在上述示例中,SOURCES
变量定义了要编译的源文件列表,OBJECTS
变量定义了生成的对象文件列表。
Makefile中的规则部分定义了如何生成可执行文件和对象文件。all
规则是默认目标,它依赖于$(TARGET)
,表示在运行make
命令时,会自动执行$(TARGET)
规则。
$(TARGET)
规则依赖于$(OBJECTS)
,表示生成可执行文件需要先生成对象文件。$(OBJECTS)
规则定义了如何生成对象文件,它依赖于对应的源文件。
最后,clean
规则用于清理生成的文件,包括对象文件和可执行文件。
使用此Makefile,可以通过运行make
命令来生成可执行文件。
下一篇:包含声明类实例的常量