在 Linux 下,使用 Makefile 可以帮助你自动化编译 C++ 项目。下面是一个简单的示例,展示了如何编写一个基本的 Makefile。
假设你的项目包含以下源文件:
并且你需要链接一个外部库,例如 pthread。
首先,创建一个名为 Makefile 的文件,并在其中添加以下内容:
# 编译器
CXX = g++
# 编译选项
CXXFLAGS = -Wall -std=c++11
# 链接选项
LDFLAGS = -lpthread
# 目标可执行文件
TARGET = my_program
# 源文件
SRCS = main.cpp foo.cpp bar.cpp
# 对象文件
OBJS = $(SRCS:.cpp=.o)
# 默认规则
all: $(TARGET)
# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
# 编译源文件生成对象文件
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
# 清理生成的文件
clean:
rm -f $(TARGET) $(OBJS)
这个 Makefile 定义了以下规则:
-Wall 和 -std=c++11 作为编译选项。-lpthread 作为链接选项。my_program。SRCS。OBJS。all,用于构建目标可执行文件。clean,用于删除生成的可执行文件和对象文件。要构建项目,请在终端中运行 make 命令。要清理生成的项目文件,请运行 make clean 命令。