在 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 命令。