」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何將多個 .cpp 檔案編譯並連結到單一二進位檔案?

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

發佈於2024-11-11
瀏覽:491

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 的目錄files.
  • OBJ_DIR:表示將建立 .o 物件的目錄。
  • SRC_FILES:
  • SRC_FILES:
  • SRC_FILES:
  • SRC_FILES:
  • 中所有 .cpp 檔案的清單SRC_DIR.
  • OBJ_FILES:
  • 全部清單.o 將產生的物件。
  • main.exe:
  • 最終二進位檔案的名稱。
  • LDFLAGS:
  • 連結器標誌。

CPPFLAGS: C 預處理器flags.

CXXFLAGS:
CXXFLAGS  = -MMD
-include $(OBJ_FILES:.o=.d)

依賴關係圖產生

自動產生來源之間的依賴關係和目標文件,將以下內容新增至Makefile:

How to Compile and Link Multiple .cpp Files into a Single Binary? 
CXXFLAGS = -MMD -include $(OBJ_FILES:.o=.d)

最佳實踐

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

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3