首頁  >  文章  >  後端開發  >  如何使用 Makefile 將 C 原始檔編譯並連結為二進位檔案?

如何使用 Makefile 將 C 原始檔編譯並連結為二進位檔案?

Patricia Arquette
Patricia Arquette原創
2024-11-03 05:01:02592瀏覽

How do I compile and link C   source files into a binary using a Makefile?

在Makefile 中編譯和連結C 原始檔

您的目標是建立一個編譯/src 資料夾中所有C 原始檔的Makefile並將它們連結到根/project 資料夾中的二進位檔案。以下是實現此目的的方法:

Makefile 配置

  1. 定義以下變數:
SRC_DIR := src
OBJ_DIR := obj
SRC_FILES := $(wildcard $(SRC_DIR)/*.cpp)
OBJ_FILES := $(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(SRC_FILES))
LDFLAGS := ...
CPPFLAGS := ...
CXXFLAGS := ...
  1. 指定編譯器和連結器標誌:
main.exe: $(OBJ_FILES)
   g++ $(LDFLAGS) -o $@ $^
  1. 建立目標規則來建立二進位檔案:
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
   g++ $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<

建立編譯規則每每每一個每編譯規則個C 原始檔:

此Makefile 會將/src 目錄中的每個原始檔案編譯為/obj 目錄中對應的.o 檔案。然後它將連結所有 .o 檔案以在 /project 目錄中建立 main.exe 二進位檔案。

    最佳實踐
  1. 這種方法通常被認為是一種常見方法編譯和連結專案中的 C 原始檔。但是,可以遵循某些最佳實踐:
  2. 概括該過程:
  3. 允許編譯目錄中的所有源文件,而無需手動指定每個文件。
  4. 自動產生依賴關係:
  5. 使用 -MMD 等標誌自動產生依賴關係圖,減少維護開銷。
參考文件:總是查閱 GNU Make全面了解 Makefile 語法和功能的手冊。

以上是如何使用 Makefile 將 C 原始檔編譯並連結為二進位檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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