Makefile でのファイルのコンパイルとリンク
質問で言及されているタスクは、複数の .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)) LDFLAGS = ... # Any additional linker flags CPPFLAGS = ... # Any additional preprocessor flags CXXFLAGS = ... # Any additional compiler flags main.exe: $(OBJ_FILES) g++ $(LDFLAGS) -o $@ $^ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp g++ $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
Makefile の内訳
依存関係管理 (オプション)
依存関係管理を自動化するには、Makefile の末尾に次の行を追加します。
CXXFLAGS += -MMD -include $(OBJ_FILES:.o=.d)
これにより、Makefile ルールの自動生成が有効になります。これにより、ソース ファイルとオブジェクト ファイル間の依存関係が追跡され、メンテナンスが簡素化されます。
結論
このアプローチは、複数の .cpp ファイルをコンパイルしてバイナリにリンクするという要件を満たします。これは、ソフトウェア開発において標準的で広く使用されている手法とも考えられています。
以上がMakefile を使用して複数の C ファイルをコンパイルして実行可能ファイルにリンクする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。