使用 Makefile 編譯並連結多個 .cpp 檔案
在專案開發中,管理多個原始檔案可能很麻煩。 Makefile 提供了一種自動化編譯和連結過程的簡化方法。在本例中,目標是將“/src”目錄中的所有“.cpp”文件編譯為“/obj”目錄中的“.o”文件,然後將它們連結到根資料夾中的二進位可執行文件。
Makefile 實現
要實現此目的,可以使用以下內容建立Makefile:
<code class="makefile"># Define directories SRC_DIR = src OBJ_DIR = obj # Get all .cpp files in the src directory SRC_FILES = $(wildcard ${SRC_DIR}/*.cpp) # Derive .o files from .cpp files OBJ_FILES = $(patsubst ${SRC_DIR}/%.cpp, ${OBJ_DIR}/%.o, ${SRC_FILES}) # Linker flags LDFLAGS = ... # C compiler flags CPPFLAGS = ... # C++ compiler flags CXXFLAGS = -std=c++11 -MMD -MP # Target binary main.exe: ${OBJ_FILES} g++ ${LDFLAGS} -o $@ $^ # Compile .cpp to .o in obj/ directory ${OBJ_DIR}/%.o: ${SRC_DIR}/%.cpp g++ ${CPPFLAGS} ${CXXFLAGS} -c -o $@ $< # Include automatically generated dependencies -include ${OBJ_FILES:.o=.d}</code>
說明說明
可以根據需要定義自訂編譯器標誌。
主要目標「main.exe」依賴所有「.o」檔案。 設定規則將每個「.cpp」檔案編譯為「/obj」目錄中的「.o」檔案。 使用「-MMD」標誌啟用自動依賴關係圖生成,這有助於管理依賴關係基於來源修改。 「-MP」標誌確保產生的依賴檔案與原始檔案放在同一目錄中,從而簡化維護。 最佳實務這種編譯和連結多個「.cpp」檔案的方法是常用的,並且遵循標準實務。它提供了透過 Makefile 管理原始檔的靈活性,同時確保高效的編譯和連結。以上是如何使用 Makefile 編譯和連結專案中的多個 .cpp 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!