温馨提示×

Linux下C++如何编写Makefile

小樊
55
2025-08-12 02:32:41
栏目: 编程语言

在 Linux 下,使用 Makefile 可以帮助你自动化编译 C++ 项目。下面是一个简单的示例,展示了如何编写一个基本的 Makefile。

假设你的项目包含以下源文件:

  • main.cpp
  • foo.cpp
  • bar.cpp

并且你需要链接一个外部库,例如 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 定义了以下规则:

  1. 使用 g++ 编译器编译 C++ 源文件。
  2. 使用 -Wall-std=c++11 作为编译选项。
  3. 使用 -lpthread 作为链接选项。
  4. 定义目标可执行文件为 my_program
  5. 定义源文件列表 SRCS
  6. 使用源文件列表生成对象文件列表 OBJS
  7. 定义默认规则 all,用于构建目标可执行文件。
  8. 定义链接规则,用于将对象文件链接成可执行文件。
  9. 定义编译规则,用于将源文件编译成对象文件。
  10. 定义清理规则 clean,用于删除生成的可执行文件和对象文件。

要构建项目,请在终端中运行 make 命令。要清理生成的项目文件,请运行 make clean 命令。

0