如何將多個.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 $@ $<
解釋:
CPPFLAGS: C 預處理器flags.
CXXFLAGS:CXXFLAGS = -MMD -include $(OBJ_FILES:.o=.d)
依賴關係圖產生
自動產生來源之間的依賴關係和目標文件,將以下內容新增至Makefile:CXXFLAGS = -MMD -include $(OBJ_FILES:.o=.d)
最佳實踐
此方法通常用於編譯和連結多個 C 檔案。然而,有必要參考 GNU Make 手冊來獲取更多指導和進階選項。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3