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>
説明
ベスト プラクティス
複数の「.cpp」ファイルをコンパイルおよびリンクするこのアプローチは一般的に使用されており、標準的な慣行に従っています。これにより、効率的なコンパイルとリンクを確保しながら、Makefile を通じてソース ファイルを柔軟に管理できます。
以上がMakefile を使用してプロジェクト内の複数の .cpp ファイルをコンパイルしてリンクするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。