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