首頁  >  文章  >  後端開發  >  如何將多個 .cpp 檔案編譯並連結到單一二進位檔案?

如何將多個 .cpp 檔案編譯並連結到單一二進位檔案?

Susan Sarandon
Susan Sarandon原創
2024-11-01 09:47:30636瀏覽

How to Compile and Link Multiple .cpp Files into a Single Binary?

如何將多個.cpp 檔案編譯並連結為二進位檔案

本文旨在解決將多個.cpp 檔案編譯為二進位文件的問題.o 物件並將它們連結到單一二進位檔案中。

Makefile 配置

要實現此目的,可以使用包含以下內容的Makefile:

SRC_DIR = ./src
OBJ_DIR = ./obj
SRC_FILES = $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))

main.exe: $(OBJ_FILES)
    g++ $(LDFLAGS) -o $@ $^

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
    g++ $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<

說明:說明:

  • SRC_DIR:
  • 指定包含來源.cpp 檔案的目錄。
  • OBJ_DIR:
  • 表示將建立 .o 物件的目錄。
  • SRC_FILES:
  • SRC_DIR 中所有 .cpp 檔案的清單。
  • OBJ_FILES :
  • 將產生的所有 .o 物件的清單。
  • main.exe:
  • 最終二進位檔案的名稱。
  • LDFLAGS:
  • 連結器標誌。
  • CPPFLAGS:
  • C 預處理器標誌。
  • CXXFLAGS:
  • C 編譯器標誌。

依賴關係圖產生

要自動產生原始檔案與目標檔案之間的依賴關係,請將下列內容新增至Makefile:
CXXFLAGS += -MMD
-include $(OBJ_FILES:.o=.d)

最佳實務

這種方法通常用於編譯和連結多個C 檔案。然而,有必要參考 GNU Make 手冊來獲取更多指導和進階選項。

以上是如何將多個 .cpp 檔案編譯並連結到單一二進位檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn