linux

Linux下C++如何编写Makefile

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

在 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 定义了以下规则:

  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
看了该问题的人还看了