使用 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中文网其他相关文章!