溫馨提示×

Linux下C++如何編寫Makefile

小樊
44
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女